spread-mult-obj-ident.js (1726B)
1 // This file was procedurally generated from the following sources: 2 // - src/spread/mult-obj-ident.case 3 // - src/spread/default/member-expr.template 4 /*--- 5 description: Object Spread operator following other properties (`new` operator) 6 esid: sec-new-operator-runtime-semantics-evaluation 7 features: [object-spread] 8 flags: [generated] 9 includes: [propertyHelper.js] 10 info: | 11 MemberExpression : new MemberExpression Arguments 12 13 1. Return EvaluateNew(MemberExpression, Arguments). 14 15 12.3.3.1.1 Runtime Semantics: EvaluateNew 16 17 6. If arguments is empty, let argList be an empty List. 18 7. Else, 19 a. Let argList be ArgumentListEvaluation of arguments. 20 [...] 21 22 Pending Runtime Semantics: PropertyDefinitionEvaluation 23 24 PropertyDefinition:...AssignmentExpression 25 26 1. Let exprValue be the result of evaluating AssignmentExpression. 27 2. Let fromValue be GetValue(exprValue). 28 3. ReturnIfAbrupt(fromValue). 29 4. Let excludedNames be a new empty List. 30 5. Return CopyDataProperties(object, fromValue, excludedNames). 31 32 ---*/ 33 let o = {c: 3, d: 4}; 34 35 36 var callCount = 0; 37 38 new function(obj) { 39 assert.sameValue(Object.keys(obj).length, 4); 40 41 verifyProperty(obj, "a", { 42 enumerable: true, 43 writable: true, 44 configurable: true, 45 value: 1 46 }); 47 48 verifyProperty(obj, "b", { 49 enumerable: true, 50 writable: true, 51 configurable: true, 52 value: 2 53 }); 54 55 verifyProperty(obj, "c", { 56 enumerable: true, 57 writable: true, 58 configurable: true, 59 value: 3 60 }); 61 62 verifyProperty(obj, "d", { 63 enumerable: true, 64 writable: true, 65 configurable: true, 66 value: 4 67 }); 68 callCount += 1; 69 }({a: 1, b: 2, ...o}); 70 71 assert.sameValue(callCount, 1); 72 73 reportCompare(0, 0);