// Copyright (C) 2017 Caio Lima. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- desc: Object Spread operator following other properties template: default esid: pending includes: [propertyHelper.js] info: | Pending Runtime Semantics: PropertyDefinitionEvaluation PropertyDefinition:...AssignmentExpression 1. Let exprValue be the result of evaluating AssignmentExpression. 2. Let fromValue be GetValue(exprValue). 3. ReturnIfAbrupt(fromValue). 4. Let excludedNames be a new empty List. 5. Return CopyDataProperties(object, fromValue, excludedNames). features: [object-spread] ---*/ //- setup let o = {c: 3, d: 4}; //- args {a: 1, b: 2, ...o} //- params obj //- body assert.sameValue(Object.keys(obj).length, 4); verifyProperty(obj, "a", { enumerable: true, writable: true, configurable: true, value: 1 }); verifyProperty(obj, "b", { enumerable: true, writable: true, configurable: true, value: 2 }); verifyProperty(obj, "c", { enumerable: true, writable: true, configurable: true, value: 3 }); verifyProperty(obj, "d", { enumerable: true, writable: true, configurable: true, value: 4 });