|
|
@ -94,11 +94,16 @@ |
|
|
|
// Object.defineProperty() ?
|
|
|
|
// Object.defineProperty() ?
|
|
|
|
(function checkObjectDefinePropertyCompatibility() { |
|
|
|
(function checkObjectDefinePropertyCompatibility() { |
|
|
|
if (typeof Object.defineProperty !== 'undefined') { |
|
|
|
if (typeof Object.defineProperty !== 'undefined') { |
|
|
|
// some browsers (e.g. safari) cannot use defineProperty() on DOM objects
|
|
|
|
|
|
|
|
// and thus the native version is not sufficient
|
|
|
|
|
|
|
|
var definePropertyPossible = true; |
|
|
|
var definePropertyPossible = true; |
|
|
|
try { |
|
|
|
try { |
|
|
|
|
|
|
|
// 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' }); |
|
|
|
Object.defineProperty(new Image(), 'id', { value: 'test' }); |
|
|
|
|
|
|
|
// ... another test for android gb browser for non-DOM objects
|
|
|
|
|
|
|
|
function Test() {} |
|
|
|
|
|
|
|
Test.prototype = { get id() { } }; |
|
|
|
|
|
|
|
Object.defineProperty(new Test(), 'id', |
|
|
|
|
|
|
|
{ value: '', configurable: true, enumerable: true, writable: false }); |
|
|
|
} catch (e) { |
|
|
|
} catch (e) { |
|
|
|
definePropertyPossible = false; |
|
|
|
definePropertyPossible = false; |
|
|
|
} |
|
|
|
} |
|
|
|