mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-03 21:24:30 +01:00 
			
		
		
		
	* Add tests for Object.hasOwn * Update test/built-ins/Object/hasOwn/length.js Co-authored-by: Jordan Harband <ljharb@gmail.com> * Update test/built-ins/Object/hasOwn/name.js Co-authored-by: Jordan Harband <ljharb@gmail.com> * Fixup comments for Object.hasOwn * Add Object.hasOwn descriptor test * use assert.sameValue with true instead of assert() * remove extra semicolons * Remove old $ERROR style tests from hasown * Fix thrown error type in hasown tests * Fix incorrect test cases Co-authored-by: Jordan Harband <ljharb@gmail.com>
		
			
				
	
	
		
			40 lines
		
	
	
		
			809 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			809 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright (C) 2021 Jamie Kyle.  All rights reserved.
 | 
						|
// This code is governed by the BSD license found in the LICENSE file.
 | 
						|
 | 
						|
/*---
 | 
						|
esid: sec-object.hasown
 | 
						|
description: Object.hasOwn with symbol and toString conversion
 | 
						|
info: |
 | 
						|
  Object.hasOwn ( _O_, _P_ )
 | 
						|
 | 
						|
  1. Let _obj_ be ? ToObject(_O_).
 | 
						|
  1. Let _key_ be ? ToPropertyKey(_P_).
 | 
						|
  ...
 | 
						|
author: Jamie Kyle
 | 
						|
features: [Symbol, Object.hasOwn]
 | 
						|
---*/
 | 
						|
 | 
						|
var obj = {};
 | 
						|
var sym = Symbol();
 | 
						|
 | 
						|
var callCount = 0;
 | 
						|
var wrapper = {
 | 
						|
  toString: function() {
 | 
						|
    callCount += 1;
 | 
						|
    return sym;
 | 
						|
  },
 | 
						|
  valueOf: function () {
 | 
						|
    throw new Test262Error("valueOf() called")
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
obj[sym] = 0;
 | 
						|
 | 
						|
assert.sameValue(
 | 
						|
  Object.hasOwn(obj, wrapper),
 | 
						|
  true,
 | 
						|
  "Returns true if symbol own property found"
 | 
						|
);
 | 
						|
 | 
						|
assert.sameValue(callCount, 1, "toString method called exactly once");
 |