diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /js/src/tests/test262/built-ins/Number/S9.3_A5_T1.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/test262/built-ins/Number/S9.3_A5_T1.js')
-rw-r--r-- | js/src/tests/test262/built-ins/Number/S9.3_A5_T1.js | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Number/S9.3_A5_T1.js b/js/src/tests/test262/built-ins/Number/S9.3_A5_T1.js new file mode 100644 index 0000000000..c9f8dc311c --- /dev/null +++ b/js/src/tests/test262/built-ins/Number/S9.3_A5_T1.js @@ -0,0 +1,105 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + Result of number conversion from object value is the result + of conversion from primitive value +es5id: 9.3_A5_T1 +description: > + new Number(), new Number(0), new Number(Number.NaN), new + Number(null), new Number(void 0) and others convert to Number by + explicit transformation +---*/ +assert.sameValue(Number(new Number()), 0, 'Number(new Number()) must return 0'); +assert.sameValue(Number(new Number(0)), 0, 'Number(new Number(0)) must return 0'); + +// CHECK#3 +assert.sameValue(Number(new Number(NaN)), NaN, 'Number(new Number(NaN)) returns NaN'); + +assert.sameValue(Number(new Number(null)), 0, 'Number(new Number(null)) must return 0'); + +// CHECK#5 +assert.sameValue(Number(new Number(void 0)), NaN, 'Number(new Number(void 0)) returns NaN'); + +assert.sameValue(Number(new Number(true)), 1, 'Number(new Number(true)) must return 1'); +assert.sameValue(Number(new Number(false)), +0, 'Number(new Number(false)) must return +0'); +assert.sameValue(Number(new Boolean(true)), 1, 'Number(new Boolean(true)) must return 1'); +assert.sameValue(Number(new Boolean(false)), +0, 'Number(new Boolean(false)) must return +0'); + +// CHECK#10 +assert.sameValue(Number(new Array(2, 4, 8, 16, 32)), NaN, 'Number(new Array(2, 4, 8, 16, 32)) returns NaN'); + +// CHECK#11 +var myobj1 = { + ToNumber: function() { + return 12345; + }, + toString: function() { + return "67890"; + }, + valueOf: function() { + return "[object MyObj]"; + } +}; + +assert.sameValue(Number(myobj1), NaN, 'Number("{ToNumber: function() {return 12345;}, toString: function() {return "67890";}, valueOf: function() {return "[object MyObj]";}}) returns NaN'); + +// CHECK#12 +var myobj2 = { + ToNumber: function() { + return 12345; + }, + toString: function() { + return "67890"; + }, + valueOf: function() { + return "9876543210"; + } +}; + +assert.sameValue( + Number(myobj2), + 9876543210, + 'Number("{ToNumber: function() {return 12345;}, toString: function() {return "67890";}, valueOf: function() {return "9876543210";}}) must return 9876543210' +); + + +// CHECK#13 +var myobj3 = { + ToNumber: function() { + return 12345; + }, + toString: function() { + return "[object MyObj]"; + } +}; + +assert.sameValue(Number(myobj3), NaN, 'Number("{ToNumber: function() {return 12345;}, toString: function() {return "[object MyObj]";}}) returns NaN'); + +// CHECK#14 +var myobj4 = { + ToNumber: function() { + return 12345; + }, + toString: function() { + return "67890"; + } +}; + +assert.sameValue( + Number(myobj4), + 67890, + 'Number("{ToNumber: function() {return 12345;}, toString: function() {return "67890";}}) must return 67890' +); + +// CHECK#15 +var myobj5 = { + ToNumber: function() { + return 12345; + } +}; + +assert.sameValue(Number(myobj5), NaN, 'Number({ToNumber: function() {return 12345;}}) returns NaN'); + +reportCompare(0, 0); |