From 2aa4a82499d4becd2284cdb482213d541b8804dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 16:29:10 +0200 Subject: Adding upstream version 86.0.1. Signed-off-by: Daniel Baumann --- .../unary-minus/bigint-non-primitive.js | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 js/src/tests/test262/language/expressions/unary-minus/bigint-non-primitive.js (limited to 'js/src/tests/test262/language/expressions/unary-minus/bigint-non-primitive.js') 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); -- cgit v1.2.3