| var _Object$defineProperty = require("../core-js/object/define-property"); |
| |
| var _Object$getOwnPropertyDescriptor = require("../core-js/object/get-own-property-descriptor"); |
| |
| var _Reflect$set = require("../core-js/reflect/set"); |
| |
| var superPropBase = require("./superPropBase"); |
| |
| var defineProperty = require("./defineProperty"); |
| |
| function set(target, property, value, receiver) { |
| if (typeof Reflect !== "undefined" && _Reflect$set) { |
| set = _Reflect$set; |
| } else { |
| set = function set(target, property, value, receiver) { |
| var base = superPropBase(target, property); |
| var desc; |
| |
| if (base) { |
| desc = _Object$getOwnPropertyDescriptor(base, property); |
| |
| if (desc.set) { |
| desc.set.call(receiver, value); |
| return true; |
| } else if (!desc.writable) { |
| return false; |
| } |
| } |
| |
| desc = _Object$getOwnPropertyDescriptor(receiver, property); |
| |
| if (desc) { |
| if (!desc.writable) { |
| return false; |
| } |
| |
| desc.value = value; |
| |
| _Object$defineProperty(receiver, property, desc); |
| } else { |
| defineProperty(receiver, property, value); |
| } |
| |
| return true; |
| }; |
| } |
| |
| return set(target, property, value, receiver); |
| } |
| |
| function _set(target, property, value, receiver, isStrict) { |
| var s = set(target, property, value, receiver || target); |
| |
| if (!s && isStrict) { |
| throw new Error('failed to set property'); |
| } |
| |
| return value; |
| } |
| |
| module.exports = _set; |