Bug 1892041 - Part 2: Update test262. r=spidermonkey-reviewers,dminor
[gecko.git] / js / src / tests / test262 / built-ins / Object / assign / source-own-prop-desc-missing.js
blob54fc0dbe668c261401584a3151530f9cc5ec350b
1 // Copyright (C) 2015 the V8 project authors. All rights reserved.
2 // This code is governed by the BSD license found in the LICENSE file.
3 /*---
4 es6id: 19.1.2.1
5 description: Invoked with a source which does not have a descriptor for an own property
6 info: |
7     [...]
8     5. For each element nextSource of sources, in ascending index order,
9        [...]
10        c. Repeat for each element nextKey of keys in List order,
11           i. Let desc be from.[[GetOwnProperty]](nextKey).
12           ii. ReturnIfAbrupt(desc).
13           iii. if desc is not undefined and desc.[[Enumerable]] is true, then
14 features: [Proxy]
15 ---*/
17 var callCount = 0;
18 var target = {};
19 var result;
20 var source = new Proxy({}, {
21   ownKeys: function() {
22     callCount += 1;
23     return ['missing'];
24   }
25 });
27 result = Object.assign(target, source);
29 assert.sameValue(callCount, 1, 'Proxy trap was invoked exactly once');
30 assert(
31   !Object.prototype.hasOwnProperty.call(target, 'missing'),
32   'An own property was not created for a property without a property descriptor'
34 assert.sameValue(result, target);
36 reportCompare(0, 0);