mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-04 05:33:50 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			859 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			859 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright (C) 2018 André Bargull. All rights reserved.
 | 
						|
// This code is governed by the BSD license found in the LICENSE file.
 | 
						|
 | 
						|
/*---
 | 
						|
esid: sec-object.keys
 | 
						|
description: >
 | 
						|
  Ensure the correct property traps are called on a proxy of an array.
 | 
						|
info: |
 | 
						|
  19.1.2.16 Object.keys ( O )
 | 
						|
  ...
 | 
						|
  2. Let nameList be ? EnumerableOwnPropertyNames(obj, "key").
 | 
						|
  ...
 | 
						|
 | 
						|
  7.3.21 EnumerableOwnPropertyNames ( O, kind )
 | 
						|
  ...
 | 
						|
  2. Let ownKeys be ? O.[[OwnPropertyKeys]]().
 | 
						|
  ...
 | 
						|
  4. For each element key of ownKeys in List order, do
 | 
						|
    a. If Type(key) is String, then
 | 
						|
      i. Let desc be ? O.[[GetOwnProperty]](key).
 | 
						|
      ...
 | 
						|
features: [Proxy]
 | 
						|
includes: [compareArray.js]
 | 
						|
---*/
 | 
						|
 | 
						|
var log = [];
 | 
						|
 | 
						|
Object.keys(new Proxy([], new Proxy({},{
 | 
						|
    get(t, pk, r) {
 | 
						|
        log.push(pk);
 | 
						|
    }
 | 
						|
})));
 | 
						|
 | 
						|
assert.compareArray([
 | 
						|
    "ownKeys",
 | 
						|
    "getOwnPropertyDescriptor",
 | 
						|
], log);
 |