diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-to-boolean.js | |
parent | Initial commit. (diff) | |
download | firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-to-boolean.js')
-rw-r--r-- | js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-to-boolean.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-to-boolean.js b/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-to-boolean.js new file mode 100644 index 0000000000..195ac80ad1 --- /dev/null +++ b/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-to-boolean.js @@ -0,0 +1,46 @@ +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 12.9.4 +description: > + Type coercion of value returned by constructor's @@hasInstance property +info: | + 1. If Type(C) is not Object, throw a TypeError exception. + 2. Let instOfHandler be GetMethod(C,@@hasInstance). + 3. ReturnIfAbrupt(instOfHandler). + 4. If instOfHandler is not undefined, then + a. Return ToBoolean(Call(instOfHandler, C, «O»)). +features: [Symbol, Symbol.hasInstance] +---*/ + +var F = {}; + +F[Symbol.hasInstance] = function() { return undefined; }; +assert.sameValue(0 instanceof F, false); + +F[Symbol.hasInstance] = function() { return null; }; +assert.sameValue(0 instanceof F, false); + +F[Symbol.hasInstance] = function() { return true; }; +assert.sameValue(0 instanceof F, true); + +F[Symbol.hasInstance] = function() { return NaN; }; +assert.sameValue(0 instanceof F, false); + +F[Symbol.hasInstance] = function() { return 1; }; +assert.sameValue(0 instanceof F, true); + +F[Symbol.hasInstance] = function() { return ''; }; +assert.sameValue(0 instanceof F, false); + +F[Symbol.hasInstance] = function() { return 'string'; }; +assert.sameValue(0 instanceof F, true); + +F[Symbol.hasInstance] = function() { return Symbol(); }; +assert.sameValue(0 instanceof F, true); + +F[Symbol.hasInstance] = function() { return {}; }; +assert.sameValue(0 instanceof F, true); + +reportCompare(0, 0); |