UNPKG

extendscript-es5-shim

Version:
65 lines (49 loc) 1.66 kB
/* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties#Polyfill */ if (!Object.defineProperties) { Object.defineProperties = function(object, props) { function hasProperty(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } function convertToDescriptor(desc) { if (Object(desc) !== desc) { throw new TypeError('Descriptor can only be an Object.'); } var d = {}; if (hasProperty(desc, "enumerable")) { d.enumerable = !!desc.enumerable; } if (hasProperty(desc, "configurable")) { d.configurable = !!desc.configurable; } if (hasProperty(desc, "value")) { d.value = desc.value; } if (hasProperty(desc, "writable")) { d.writable = !!desc.writable; } if (hasProperty(desc, "get")) { throw new TypeError('getters & setters can not be defined on this javascript engine'); } if (hasProperty(desc, "set")) { throw new TypeError('getters & setters can not be defined on this javascript engine'); } return d; } if (Object(object) !== object) { throw new TypeError('Object.defineProperties can only be called on Objects.'); } if (Object(props) !== props) { throw new TypeError('Properties can only be an Object.'); } var properties = Object(props); for (propName in properties) { if (hasOwnProperty.call(properties, propName)) { var descr = convertToDescriptor(properties[propName]); object[propName] = descr.value; } } return object; } }