Remove the Object.defineProperty polyfill

This is only relevant for browsers that we don't intend to support with PDF.js version `2.0`.
This commit is contained in:
Jonas Jenwald 2017-11-16 13:47:18 +01:00
parent 6f52fafdc0
commit 935c5c587f

View File

@ -52,51 +52,6 @@ PDFJS.compatibilityChecked = true;
}
})();
// Object.defineProperty()?
// Support: Android<4.0, Safari<5.1
(function checkObjectDefinePropertyCompatibility() {
if (typeof Object.defineProperty !== 'undefined') {
var definePropertyPossible = true;
try {
if (hasDOM) {
// some browsers (e.g. safari) cannot use defineProperty() on DOM
// objects and thus the native version is not sufficient
Object.defineProperty(new Image(), 'id', { value: 'test', });
}
// ... another test for android gb browser for non-DOM objects
var Test = function Test() {};
Test.prototype = { get id() { }, };
Object.defineProperty(new Test(), 'id',
{ value: '', configurable: true, enumerable: true, writable: false, });
} catch (e) {
definePropertyPossible = false;
}
if (definePropertyPossible) {
return;
}
}
Object.defineProperty = function objectDefineProperty(obj, name, def) {
delete obj[name];
if ('get' in def) {
obj.__defineGetter__(name, def['get']);
}
if ('set' in def) {
obj.__defineSetter__(name, def['set']);
}
if ('value' in def) {
obj.__defineSetter__(name, function objectDefinePropertySetter(value) {
this.__defineGetter__(name, function objectDefinePropertyGetter() {
return value;
});
return value;
});
obj[name] = def.value;
}
};
})();
// No XMLHttpRequest#response?
// Support: IE<11, Android <4.0
(function checkXMLHttpRequestResponseCompatibility() {