Sha256: 060603c99fc1fb065ee0f40b3916aa87d63672b0c685bd29a4ecbce8b7813d6d

Contents?: true

Size: 1.67 KB

Versions: 12

Compression:

Stored size: 1.67 KB

Contents

var $ = require('../internals/export');
var anObject = require('../internals/an-object');
var isObject = require('../internals/is-object');
var has = require('../internals/has');
var definePropertyModule = require('../internals/object-define-property');
var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
var getPrototypeOf = require('../internals/object-get-prototype-of');
var createPropertyDescriptor = require('../internals/create-property-descriptor');

// `Reflect.set` method
// https://tc39.github.io/ecma262/#sec-reflect.set
function set(target, propertyKey, V /* , receiver */) {
  var receiver = arguments.length < 4 ? target : arguments[3];
  var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);
  var existingDescriptor, prototype;
  if (!ownDescriptor) {
    if (isObject(prototype = getPrototypeOf(target))) {
      return set(prototype, propertyKey, V, receiver);
    }
    ownDescriptor = createPropertyDescriptor(0);
  }
  if (has(ownDescriptor, 'value')) {
    if (ownDescriptor.writable === false || !isObject(receiver)) return false;
    if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {
      if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
      existingDescriptor.value = V;
      definePropertyModule.f(receiver, propertyKey, existingDescriptor);
    } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));
    return true;
  }
  return ownDescriptor.set === undefined ? false : (ownDescriptor.set.call(receiver, V), true);
}

$({ target: 'Reflect', stat: true }, {
  set: set
});

Version data entries

12 entries across 12 versions & 4 rubygems

Version Path
disco_app-0.18.0 test/dummy/node_modules/core-js/modules/es.reflect.set.js
disco_app-0.18.2 test/dummy/node_modules/core-js/modules/es.reflect.set.js
condenser-0.0.8 lib/condenser/processors/node_modules/core-js-pure/modules/es.reflect.set.js
jester-data-8.0.0 node_modules/core-js/modules/es.reflect.set.js
ezii-os-5.2.1 node_modules/core-js/modules/es.reflect.set.js
ezii-os-2.0.1 node_modules/core-js/modules/es.reflect.set.js
ezii-os-1.1.0 node_modules/core-js/modules/es.reflect.set.js
ezii-os-1.0.0 node_modules/core-js/modules/es.reflect.set.js
condenser-0.0.7 lib/condenser/processors/node_modules/core-js-pure/modules/es.reflect.set.js
ezii-os-0.0.0.1.0 node_modules/core-js/modules/es.reflect.set.js
ezii-os-0.0.0.0.1 node_modules/core-js/modules/es.reflect.set.js
condenser-0.0.5 lib/condenser/processors/node_modules/core-js-pure/modules/es.reflect.set.js