extendscript-es5-shim
Version:
a collection of useful es5-shims for Extendscript
35 lines (29 loc) • 1.42 kB
JavaScript
if (!Object.defineProperty) {
Object.defineProperty = function defineProperty(object, property, descriptor) {
if (Object(object) !== object) {
throw new TypeError('Object.defineProperty can only be called on Objects.');
}
if (Object(descriptor) !== descriptor) {
throw new TypeError('Property description can only be an Object.');
}
if ('get' in descriptor || 'set' in descriptor) {
throw new TypeError('getters & setters can not be defined on this javascript engine');
}
// If it's a data property.
if ('value' in descriptor) {
// fail silently if 'writable', 'enumerable', or 'configurable'
// are requested but not supported
// can't implement these features; allow true but not false
/* if (
('writable' in descriptor && !descriptor.writable) ||
('enumerable' in descriptor && !descriptor.enumerable) ||
('configurable' in descriptor && !descriptor.configurable)
)
{
throw new RangeError('This implementation of Object.defineProperty does not support configurable, enumerable, or writable properties SET to FALSE.');
}*/
object[property] = descriptor.value;
}
return object;
}
}