const convertDataDescriptorToAccessor = (obj, prop) => { const descriptor = Object.getOwnPropertyDescriptor(obj, prop) let value = descriptor.value descriptor.get = function getter() { return value } if (descriptor.writable) { descriptor.set = function setter(val) { return (value = val) } } delete descriptor.value delete descriptor.writable Object.defineProperty(obj, prop, descriptor) return descriptor }
function init() { function isModuleNamespaceObjectLike(value) { if (! isObject(value) || getPrototypeOf(value) !== null) { return false } const descriptor = Reflect.getOwnPropertyDescriptor(value, Symbol.toStringTag) return descriptor !== void 0 && descriptor.configurable === false && descriptor.enumerable === false && descriptor.writable === false && descriptor.value === "Module" } return isModuleNamespaceObjectLike }
getOwnPropertyDescriptor(console, name) { const descriptor = Reflect.getOwnPropertyDescriptor(console, name) if (isUpdatableDescriptor(descriptor)) { if (builtinConsole === void 0) { builtinConsole = createBuiltinConsole() builtinMethodMap = createBuiltinMethodMap(builtinConsole) } const builtinMethod = builtinMethodMap.get(descriptor.value) if (builtinMethod !== void 0) { descriptor.value = builtinMethod } } return descriptor }
// The return value is a mixin of `childProcess` and `Promise` const mergePromise = (spawned, promise) => { for (const [property, descriptor] of descriptors) { // Starting the main `promise` is deferred to avoid consuming streams const value = typeof promise === 'function' ? (...args) => Reflect.apply(descriptor.value, promise(), args) : descriptor.value.bind(promise); Reflect.defineProperty(spawned, property, {...descriptor, value}); } return spawned; }
descriptor.value === externalMap.get(name) && isUpdatableDescriptor(descriptor)) { descriptor.value = builtinMap[name]
: stackTraceLimitDescriptor.value
object[name] = descriptor.value } else { descriptor.configurable = true
value = exportedDescriptor.value } else if (typeof exportedDescriptor.get === "function") { value = tryGetter(exportedDescriptor.get)
.value .prototype
//ES5 15.2.3.3 //http://es5.github.com/#x15.2.3.3 function doesGetOwnPropertyDescriptorWork(object) { try { object.sentinel = 0; return Object.getOwnPropertyDescriptor(object, 'sentinel').value === 0; } catch (exception) { return false; } }
it('has correct descriptors defined for Map.prototype.delete', function () { var descriptor = Object.getOwnPropertyDescriptor(Map.prototype, 'delete'); proclaim.isTrue(descriptor.configurable); proclaim.isFalse(descriptor.enumerable); proclaim.isTrue(descriptor.writable); proclaim.doesNotInclude(descriptor, 'get'); proclaim.doesNotInclude(descriptor, 'set'); proclaim.ok(descriptor.value); });
/*! * Materialize v1.0.0 (http://materializecss.com) * Copyright 2014-2017 Materialize * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) */ var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }
const convertDataDescriptorToAccessor = (obj, prop) => { const descriptor = Object.getOwnPropertyDescriptor(obj, prop) let value = descriptor.value descriptor.get = function getter() { return value } if (descriptor.writable) { descriptor.set = function setter(val) { return (value = val) } } delete descriptor.value delete descriptor.writable Object.defineProperty(obj, prop, descriptor) return descriptor }
it('has correct descriptors defined for Map.prototype.values', function () { var descriptor = Object.getOwnPropertyDescriptor(Map.prototype, 'values'); proclaim.isTrue(descriptor.configurable); proclaim.isFalse(descriptor.enumerable); proclaim.isTrue(descriptor.writable); proclaim.doesNotInclude(descriptor, 'get'); proclaim.doesNotInclude(descriptor, 'set'); proclaim.ok(descriptor.value); });