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/unary-minus/bigint-non-primitive.js | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.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/unary-minus/bigint-non-primitive.js')
-rw-r--r-- | js/src/tests/test262/language/expressions/unary-minus/bigint-non-primitive.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/expressions/unary-minus/bigint-non-primitive.js b/js/src/tests/test262/language/expressions/unary-minus/bigint-non-primitive.js new file mode 100644 index 0000000000..23e422faf5 --- /dev/null +++ b/js/src/tests/test262/language/expressions/unary-minus/bigint-non-primitive.js @@ -0,0 +1,54 @@ +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: Unary minus for BigInt object wrappers +esid: sec-unary-minus-operator-runtime-semantics-evaluation +info: | + Runtime Semantics: Evaluation + UnaryExpression : - UnaryExpression + + 1. Let expr be the result of evaluating UnaryExpression. + 2. Let oldValue be ? ToNumeric(? GetValue(expr)). + 3. Let T be Type(oldValue). + 4. Return ? T::unaryMinus(oldValue). + +features: [BigInt, Symbol.toPrimitive] +---*/ +assert.sameValue(-Object(1n), -1n, 'The value of -Object(1n) is -1n'); +assert.notSameValue(-Object(1n), 1n, 'The value of -Object(1n) is not 1n'); +assert.notSameValue(-Object(1n), Object(-1n), 'The value of -Object(1n) is not Object(-1n)'); +assert.sameValue(-Object(-1n), 1n, 'The value of -Object(-1n) is 1n'); +assert.notSameValue(-Object(-1n), -1n, 'The value of -Object(-1n) is not -1n'); +assert.notSameValue(-Object(-1n), Object(1n), 'The value of -Object(-1n) is not Object(1n)'); + +assert.sameValue(-{ + [Symbol.toPrimitive]: function() { + return 1n; + }, + + valueOf: function() { + $ERROR(); + }, + + toString: function() { + $ERROR(); + } +}, -1n, 'The value of -{[Symbol.toPrimitive]: function() {return 1n;}, valueOf: function() {$ERROR();}, toString: function() {$ERROR();}} is -1n'); + +assert.sameValue(-{ + valueOf: function() { + return 1n; + }, + + toString: function() { + $ERROR(); + } +}, -1n, 'The value of -{valueOf: function() {return 1n;}, toString: function() {$ERROR();}} is -1n'); + +assert.sameValue(-{ + toString: function() { + return 1n; + } +}, -1n, 'The value of -{toString: function() {return 1n;}} is -1n'); + +reportCompare(0, 0); |