Name Description Size
assign-descriptor.js --- description: Testing descriptor property of Object.assign includes: [propertyHelper.js] es6id: 19.1.2.1 --- 369
assign-length.js --- description: The length property of the assign method should be 2 es6id: 19.1.2.1 info: | The length property of the assign method is 2. ES6 Section 17: Unless otherwise specified, the length property of a built-in Function object has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. includes: [propertyHelper.js] --- 660
assignment-to-readonly-property-of-target-must-throw-a-typeerror-exception.js --- esid: sec-object.assign description: > Assignment to readonly property of target must throw a TypeError exception info: | Let to be ? ToObject(target). If only one argument was passed, return to. For each element nextSource of sources, do If nextSource is neither undefined nor null, then Let from be ! ToObject(nextSource). Let keys be ? from.[[OwnPropertyKeys]](). For each element nextKey of keys, do Let desc be ? from.[[GetOwnProperty]](nextKey). If desc is not undefined and desc.[[Enumerable]] is true, then Let propValue be ? Get(from, nextKey). Perform ? Set(to, nextKey, propValue, true). Set ( O, P, V, Throw ) sec-set-o-p-v-throw Let success be ? O.[[Set]](P, V, O). If success is false and Throw is true, throw a TypeError exception. --- 1042
browser.js 0
invoked-as-ctor.js --- es6id: 19.1.2.1 description: Invoked as a constructor info: | ES6 Section 9.3: Built-in function objects that are not identified as constructors do not implement the [[Construct]] internal method unless otherwise specified in the description of a particular function. --- 525
name.js --- es6id: 19.1.2.1 description: '`name` property' info: | ES6 Section 17: Every built-in Function object, including constructors, that is not identified as an anonymous function has a name property whose value is a String. Unless otherwise specified, this value is the name that is given to the function in this specification. [...] Unless otherwise specified, the name property of a built-in Function object, if it exists, has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. includes: [propertyHelper.js] --- 879
not-a-constructor.js --- esid: sec-ecmascript-standard-built-in-objects description: > Object.assign does not implement [[Construct]], is not new-able info: | ECMAScript Function Objects Built-in function objects that are not identified as constructors do not implement the [[Construct]] internal method unless otherwise specified in the description of a particular function. sec-evaluatenew ... 7. If IsConstructor(constructor) is false, throw a TypeError exception. ... includes: [isConstructor.js] features: [Reflect.construct, arrow-function] --- 876
ObjectOverride-sameproperty.js --- description: > Object properties are assigned to target in ascending index order, i.e. a later assignment to the same property overrides an earlier assignment. es6id: 19.1.2.1 --- 495
OnlyOneArgument.js --- description: > test Object.Assign(target,...sources),only one argument was passed, return ToObject(target) es6id: 19.1.2.1.3 --- 462
Override-notstringtarget.js --- description: > Test override of Object.Assign(target,...sources), Every string from sources will be wrapped to objects, and override from the first letter(result[0]) all the time es6id: 19.1.2.1 --- 839
Override.js --- description: Test Object.Assign(target,...sources). esid: sec-object.assign --- 1332
shell.js 0
source-get-attr-error.js --- es6id: 19.1.2.1 description: Errors thrown during retrieval of source object attributes info: | [...] 5. For each element nextSource of sources, in ascending index order, [...] c. Repeat for each element nextKey of keys in List order, [...] iii. if desc is not undefined and desc.[[Enumerable]] is true, then 1. Let propValue be Get(from, nextKey). 2. ReturnIfAbrupt(propValue). --- 748
source-non-enum.js --- es6id: 19.1.2.1 description: Does not assign non-enumerable source properties info: | [...] 5. For each element nextSource of sources, in ascending index order, c. Repeat for each element nextKey of keys in List order, i. Let desc be from.[[GetOwnProperty]](nextKey). ii. ReturnIfAbrupt(desc). iii. if desc is not undefined and desc.[[Enumerable]] is true, then --- 903
Source-Null-Undefined.js --- description: null and undefined source should be ignored,result should be original object. esid: sec-object.assign --- 459
Source-Number-Boolen-Symbol.js --- description: > Number,Boolean,Symbol cannot have own enumerable properties, So cannot be Assigned.Here result should be original object. esid: sec-object.assign features: [Symbol] --- 537
source-own-prop-desc-missing.js --- es6id: 19.1.2.1 description: Invoked with a source which does not have a descriptor for an own property info: | [...] 5. For each element nextSource of sources, in ascending index order, [...] c. Repeat for each element nextKey of keys in List order, i. Let desc be from.[[GetOwnProperty]](nextKey). ii. ReturnIfAbrupt(desc). iii. if desc is not undefined and desc.[[Enumerable]] is true, then features: [Proxy] --- 1089
source-own-prop-error.js --- es6id: 19.1.2.1 description: Invoked with a source whose own property descriptor cannot be retrieved info: | [...] 5. For each element nextSource of sources, in ascending index order, [...] c. Repeat for each element nextKey of keys in List order, i. Let desc be from.[[GetOwnProperty]](nextKey). ii. ReturnIfAbrupt(desc). features: [Proxy] --- 753
source-own-prop-keys-error.js --- es6id: 19.1.2.1 description: Invoked with a source whose own property keys cannot be retrieved info: | [...] 5. For each element nextSource of sources, in ascending index order, a. If nextSource is undefined or null, let keys be an empty List. b. Else, i. Let from be ToObject(nextSource). ii. ReturnIfAbrupt(from). iii. Let keys be from.[[OwnPropertyKeys]](). iv. ReturnIfAbrupt(keys). features: [Proxy] --- 806
Source-String.js --- description: Test Object.Assign(target,...sources), string have own enumerable properties, so it can be wrapped to objects. esid: sec-object.assign --- 630
strings-and-symbol-order-proxy.js --- esid: sec-object.assign description: > Proxy keys are iterated in order they were provided by "ownKeys" trap. info: | Object.assign ( target, ...sources ) [...] 4. For each element nextSource of sources, in ascending index order, do a. If nextSource is neither undefined nor null, then [...] ii. Let keys be ? from.[[OwnPropertyKeys]](). iii. For each element nextKey of keys in List order, do 1. Let desc be ? from.[[GetOwnProperty]](nextKey). [[OwnPropertyKeys]] ( ) [...] 7. Let trapResultArray be ? Call(trap, handler, « target »). 8. Let trapResult be ? CreateListFromArrayLike(trapResultArray, « String, Symbol »). [...] 23. Return trapResult. features: [Proxy, Symbol] includes: [compareArray.js] --- 1237
strings-and-symbol-order.js --- esid: sec-object.assign description: > Symbol-valued properties are copied after String-valued properties. info: | 19.1.2.1 Object.assign ( target, ...sources ) ... 4. For each element nextSource of sources, in ascending index order, do a. ... b. Else, i. Let from be ! ToObject(nextSource). ii. Let keys be ? from.[[OwnPropertyKeys]](). c. For each element nextKey of keys in List order, do ... ... 9.1.11.1 OrdinaryOwnPropertyKeys ( O ) ... 3. For each own property key P of O that is a String but is not an integer index, in ascending chronological order of property creation, do a. Add P as the last element of keys. 4. For each own property key P of O that is a Symbol, in ascending chronological order of property creation, do a. Add P as the last element of keys. ... includes: [compareArray.js] --- 1749
Target-Boolean.js --- description: > Test the first argument(target) of Object.Assign(target,...sources), if target is Boolean,the return value should be a new object whose value is target. es6id: 19.1.2.1.1 --- 556
target-is-frozen-accessor-property-set-succeeds.js --- esid: sec-object.assign description: > [[Set]] to accessor property of frozen `target` succeeds. info: | SetIntegrityLevel ( O, level ) [...] 3. Let status be ? O.[[PreventExtensions]](). [...] 7. Else, a. Assert: level is frozen. b. For each element k of keys, do i. Let currentDesc be ? O.[[GetOwnProperty]](k). ii. If currentDesc is not undefined, then 1. If IsAccessorDescriptor(currentDesc) is true, then a. Let desc be the PropertyDescriptor { [[Configurable]]: false }. [...] 3. Perform ? DefinePropertyOrThrow(O, k, desc). 8. Return true. Object.assign ( target, ...sources ) [...] 3. For each element nextSource of sources, do a. If nextSource is neither undefined nor null, then [...] iii. For each element nextKey of keys, do 1. Let desc be ? from.[[GetOwnProperty]](nextKey). 2. If desc is not undefined and desc.[[Enumerable]] is true, then [...] b. Perform ? Set(to, nextKey, propValue, true). OrdinarySetWithOwnDescriptor ( O, P, V, Receiver, ownDesc ) [...] 7. Perform ? Call(setter, Receiver, « V »). 8. Return true. features: [Symbol] --- 1715
target-is-frozen-data-property-set-throws.js --- esid: sec-object.assign description: > [[Set]] to data property of frozen `target` fails with TypeError. info: | SetIntegrityLevel ( O, level ) [...] 3. Let status be ? O.[[PreventExtensions]](). [...] 7. Else, a. Assert: level is frozen. b. For each element k of keys, do i. Let currentDesc be ? O.[[GetOwnProperty]](k). ii. If currentDesc is not undefined, then 1. If IsAccessorDescriptor(currentDesc) is true, then [...] 2. Else, a. Let desc be the PropertyDescriptor { [[Configurable]]: false, [[Writable]]: false }. 3. Perform ? DefinePropertyOrThrow(O, k, desc). 8. Return true. Object.assign ( target, ...sources ) [...] 3. For each element nextSource of sources, do a. If nextSource is neither undefined nor null, then [...] iii. For each element nextKey of keys, do 1. Let desc be ? from.[[GetOwnProperty]](nextKey). 2. If desc is not undefined and desc.[[Enumerable]] is true, then [...] b. Perform ? Set(to, nextKey, propValue, true). OrdinarySetWithOwnDescriptor ( O, P, V, Receiver, ownDesc ) [...] 3. If IsDataDescriptor(ownDesc) is true, then a. If ownDesc.[[Writable]] is false, return false. features: [Symbol, Reflect] --- 1729
target-is-non-extensible-existing-accessor-property.js --- esid: sec-object.assign description: > [[Set]] to existing accessor property of non-extensible `target` is successful. info: | OrdinaryPreventExtensions ( O ) 1. Set O.[[Extensible]] to false. Object.assign ( target, ...sources ) [...] 3. For each element nextSource of sources, do a. If nextSource is neither undefined nor null, then [...] iii. For each element nextKey of keys, do 1. Let desc be ? from.[[GetOwnProperty]](nextKey). 2. If desc is not undefined and desc.[[Enumerable]] is true, then [...] b. Perform ? Set(to, nextKey, propValue, true). OrdinarySetWithOwnDescriptor ( O, P, V, Receiver, ownDesc ) [...] 7. Perform ? Call(setter, Receiver, « V »). 8. Return true. features: [Symbol] --- 1297
target-is-non-extensible-existing-data-property.js --- esid: sec-object.assign description: > [[Set]] to existing data property of non-extensible `target` is successful. info: | OrdinaryPreventExtensions ( O ) 1. Set O.[[Extensible]] to false. Object.assign ( target, ...sources ) [...] 3. For each element nextSource of sources, do a. If nextSource is neither undefined nor null, then [...] iii. For each element nextKey of keys, do 1. Let desc be ? from.[[GetOwnProperty]](nextKey). 2. If desc is not undefined and desc.[[Enumerable]] is true, then [...] b. Perform ? Set(to, nextKey, propValue, true). OrdinarySetWithOwnDescriptor ( O, P, V, Receiver, ownDesc ) [...] 3. If IsDataDescriptor(ownDesc) is true, then [...] c. Let existingDescriptor be ? Receiver.[[GetOwnProperty]](P). d. If existingDescriptor is not undefined, then [...] iii. Let valueDesc be the PropertyDescriptor { [[Value]]: V }. iv. Return ? Receiver.[[DefineOwnProperty]](P, valueDesc). ValidateAndApplyPropertyDescriptor ( O, P, extensible, Desc, current ) [...] 9. If O is not undefined, then a. For each field of Desc that is present, set the corresponding attribute of the property named P of object O to the value of the field. 10. Return true. features: [Symbol] --- 1759
target-is-non-extensible-property-creation-throws.js --- esid: sec-object.assign description: > [[Set]] to non-existing property of non-extensible `target` fails with TypeError. info: | Object.assign ( target, ...sources ) [...] 3. For each element nextSource of sources, do a. If nextSource is neither undefined nor null, then [...] iii. For each element nextKey of keys, do 1. Let desc be ? from.[[GetOwnProperty]](nextKey). 2. If desc is not undefined and desc.[[Enumerable]] is true, then [...] b. Perform ? Set(to, nextKey, propValue, true). OrdinarySetWithOwnDescriptor ( O, P, V, Receiver, ownDesc ) [...] 3. If IsDataDescriptor(ownDesc) is true, then [...] c. Let existingDescriptor be ? Receiver.[[GetOwnProperty]](P). d. If existingDescriptor is not undefined, then [...] e. Else, i. Assert: Receiver does not currently have a property P. ii. Return ? CreateDataProperty(Receiver, P, V). ValidateAndApplyPropertyDescriptor ( O, P, extensible, Desc, current ) [...] 2. If current is undefined, then a. If extensible is false, return false. features: [Symbol] --- 1570
target-is-sealed-existing-accessor-property.js --- esid: sec-object.assign description: > [[Set]] to existing accessor property of sealed `target` is successful. info: | SetIntegrityLevel ( O, level ) [...] 3. Let status be ? O.[[PreventExtensions]](). [...] OrdinaryPreventExtensions ( O ) 1. Set O.[[Extensible]] to false. Object.assign ( target, ...sources ) [...] 3. For each element nextSource of sources, do a. If nextSource is neither undefined nor null, then [...] iii. For each element nextKey of keys, do 1. Let desc be ? from.[[GetOwnProperty]](nextKey). 2. If desc is not undefined and desc.[[Enumerable]] is true, then [...] b. Perform ? Set(to, nextKey, propValue, true). OrdinarySetWithOwnDescriptor ( O, P, V, Receiver, ownDesc ) [...] 7. Perform ? Call(setter, Receiver, « V »). 8. Return true. --- 1343
target-is-sealed-existing-data-property.js --- esid: sec-object.assign description: > [[Set]] to existing data property of sealed `target` is successful. info: | SetIntegrityLevel ( O, level ) [...] 3. Let status be ? O.[[PreventExtensions]](). [...] OrdinaryPreventExtensions ( O ) 1. Set O.[[Extensible]] to false. Object.assign ( target, ...sources ) [...] 3. For each element nextSource of sources, do a. If nextSource is neither undefined nor null, then [...] iii. For each element nextKey of keys, do 1. Let desc be ? from.[[GetOwnProperty]](nextKey). 2. If desc is not undefined and desc.[[Enumerable]] is true, then [...] b. Perform ? Set(to, nextKey, propValue, true). OrdinarySetWithOwnDescriptor ( O, P, V, Receiver, ownDesc ) [...] 3. If IsDataDescriptor(ownDesc) is true, then [...] c. Let existingDescriptor be ? Receiver.[[GetOwnProperty]](P). d. If existingDescriptor is not undefined, then [...] iii. Let valueDesc be the PropertyDescriptor { [[Value]]: V }. iv. Return ? Receiver.[[DefineOwnProperty]](P, valueDesc). ValidateAndApplyPropertyDescriptor ( O, P, extensible, Desc, current ) [...] 9. If O is not undefined, then a. For each field of Desc that is present, set the corresponding attribute of the property named P of object O to the value of the field. 10. Return true. --- 1805
target-is-sealed-property-creation-throws.js --- esid: sec-object.assign description: > [[Set]] to non-existing property of sealed `target` fails with TypeError. info: | SetIntegrityLevel ( O, level ) [...] 3. Let status be ? O.[[PreventExtensions]](). [...] Object.assign ( target, ...sources ) [...] 3. For each element nextSource of sources, do a. If nextSource is neither undefined nor null, then [...] iii. For each element nextKey of keys, do 1. Let desc be ? from.[[GetOwnProperty]](nextKey). 2. If desc is not undefined and desc.[[Enumerable]] is true, then [...] b. Perform ? Set(to, nextKey, propValue, true). OrdinarySetWithOwnDescriptor ( O, P, V, Receiver, ownDesc ) [...] 3. If IsDataDescriptor(ownDesc) is true, then [...] c. Let existingDescriptor be ? Receiver.[[GetOwnProperty]](P). d. If existingDescriptor is not undefined, then [...] e. Else, i. Assert: Receiver does not currently have a property P. ii. Return ? CreateDataProperty(Receiver, P, V). ValidateAndApplyPropertyDescriptor ( O, P, extensible, Desc, current ) [...] 2. If current is undefined, then a. If extensible is false, return false. features: [Symbol, Reflect] --- 1644
Target-Null.js --- description: > Test the first argument(target) of Object.Assign(target,...sources), if target is null,Should Throw a TypeError exception. es6id: 19.1.2.1.1 --- 407
Target-Number.js --- description: > Test the first argument(target) of Object.Assign(target,...sources), if target is Number,the return value should be a new object whose value is target. es6id: 19.1.2.1.1 --- 546
Target-Object.js --- description: > Test the first argument(target) of Object.Assign(target,...sources), if target is Object,its properties will be the properties of new object. es6id: 19.1.2.1.1 --- 549
target-set-not-writable.js --- es6id: 19.1.2.1 description: Errors thrown during definition of target object attributes info: | [...] 5. For each element nextSource of sources, in ascending index order, [...] c. Repeat for each element nextKey of keys in List order, [...] iii. if desc is not undefined and desc.[[Enumerable]] is true, then [...] 3. Let status be Set(to, nextKey, propValue, true). 4. ReturnIfAbrupt(status). --- 800
target-set-user-error.js --- es6id: 19.1.2.1 description: Errors thrown during definition of target object attributes info: | [...] 5. For each element nextSource of sources, in ascending index order, [...] c. Repeat for each element nextKey of keys in List order, [...] iii. if desc is not undefined and desc.[[Enumerable]] is true, then [...] 3. Let status be Set(to, nextKey, propValue, true). 4. ReturnIfAbrupt(status). --- 840
Target-String.js --- description: > Test the first argument(target) of Object.Assign(target,...sources), if target is String,the return value should be a new object whose value is target. es6id: 19.1.2.1.1 --- 561
Target-Symbol.js --- description: > Test the first argument(target) of Object.Assign(target,...sources), if target is Symbol,the return value should be a new Symbol object whose [[SymbolData]] value is target. es6id: 19.1.2.1.1 features: [Symbol] --- 652
Target-Undefined.js --- description: > Test the first argument(target) of Object.Assign(target,...sources), if target is Undefined,Should Throw a TypeError exception. es6id: 19.1.2.1.1 --- 417