From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../test262/built-ins/parseInt/15.1.2.2-2-1.js | 13 ++ .../test262/built-ins/parseInt/S15.1.2.2_A1_T1.js | 13 ++ .../test262/built-ins/parseInt/S15.1.2.2_A1_T2.js | 15 +++ .../test262/built-ins/parseInt/S15.1.2.2_A1_T3.js | 13 ++ .../test262/built-ins/parseInt/S15.1.2.2_A1_T4.js | 13 ++ .../test262/built-ins/parseInt/S15.1.2.2_A1_T5.js | 20 +++ .../test262/built-ins/parseInt/S15.1.2.2_A1_T6.js | 21 ++++ .../test262/built-ins/parseInt/S15.1.2.2_A1_T7.js | 129 +++++++++++++++++++ .../test262/built-ins/parseInt/S15.1.2.2_A2_T1.js | 26 ++++ .../test262/built-ins/parseInt/S15.1.2.2_A2_T10.js | 30 +++++ .../built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js | 32 +++++ .../test262/built-ins/parseInt/S15.1.2.2_A2_T2.js | 24 ++++ .../test262/built-ins/parseInt/S15.1.2.2_A2_T3.js | 16 +++ .../test262/built-ins/parseInt/S15.1.2.2_A2_T4.js | 16 +++ .../test262/built-ins/parseInt/S15.1.2.2_A2_T5.js | 16 +++ .../test262/built-ins/parseInt/S15.1.2.2_A2_T6.js | 16 +++ .../test262/built-ins/parseInt/S15.1.2.2_A2_T7.js | 16 +++ .../test262/built-ins/parseInt/S15.1.2.2_A2_T8.js | 16 +++ .../test262/built-ins/parseInt/S15.1.2.2_A2_T9.js | 25 ++++ .../built-ins/parseInt/S15.1.2.2_A3.1_T1.js | 15 +++ .../built-ins/parseInt/S15.1.2.2_A3.1_T2.js | 14 +++ .../built-ins/parseInt/S15.1.2.2_A3.1_T3.js | 17 +++ .../built-ins/parseInt/S15.1.2.2_A3.1_T4.js | 19 +++ .../built-ins/parseInt/S15.1.2.2_A3.1_T5.js | 21 ++++ .../built-ins/parseInt/S15.1.2.2_A3.1_T6.js | 23 ++++ .../built-ins/parseInt/S15.1.2.2_A3.1_T7.js | 139 +++++++++++++++++++++ .../built-ins/parseInt/S15.1.2.2_A3.2_T1.js | 26 ++++ .../built-ins/parseInt/S15.1.2.2_A3.2_T2.js | 26 ++++ .../built-ins/parseInt/S15.1.2.2_A3.2_T3.js | 29 +++++ .../built-ins/parseInt/S15.1.2.2_A4.1_T1.js | 24 ++++ .../built-ins/parseInt/S15.1.2.2_A4.1_T2.js | 24 ++++ .../built-ins/parseInt/S15.1.2.2_A4.2_T1.js | 23 ++++ .../built-ins/parseInt/S15.1.2.2_A4.2_T2.js | 23 ++++ .../built-ins/parseInt/S15.1.2.2_A5.1_T1.js | 16 +++ .../built-ins/parseInt/S15.1.2.2_A5.2_T1.js | 36 ++++++ .../built-ins/parseInt/S15.1.2.2_A5.2_T2.js | 31 +++++ .../built-ins/parseInt/S15.1.2.2_A6.1_T1.js | 18 +++ .../built-ins/parseInt/S15.1.2.2_A6.1_T2.js | 19 +++ .../built-ins/parseInt/S15.1.2.2_A6.1_T3.js | 19 +++ .../built-ins/parseInt/S15.1.2.2_A6.1_T4.js | 23 ++++ .../built-ins/parseInt/S15.1.2.2_A6.1_T5.js | 23 ++++ .../built-ins/parseInt/S15.1.2.2_A6.1_T6.js | 28 +++++ .../built-ins/parseInt/S15.1.2.2_A7.1_T1.js | 15 +++ .../built-ins/parseInt/S15.1.2.2_A7.1_T2.js | 16 +++ .../built-ins/parseInt/S15.1.2.2_A7.2_T1.js | 36 ++++++ .../built-ins/parseInt/S15.1.2.2_A7.2_T2.js | 35 ++++++ .../built-ins/parseInt/S15.1.2.2_A7.2_T3.js | 80 ++++++++++++ .../built-ins/parseInt/S15.1.2.2_A7.3_T1.js | 37 ++++++ .../built-ins/parseInt/S15.1.2.2_A7.3_T2.js | 36 ++++++ .../built-ins/parseInt/S15.1.2.2_A7.3_T3.js | 71 +++++++++++ .../test262/built-ins/parseInt/S15.1.2.2_A8.js | 60 +++++++++ .../test262/built-ins/parseInt/S15.1.2.2_A9.1.js | 26 ++++ .../test262/built-ins/parseInt/S15.1.2.2_A9.2.js | 17 +++ .../test262/built-ins/parseInt/S15.1.2.2_A9.3.js | 14 +++ .../test262/built-ins/parseInt/S15.1.2.2_A9.4.js | 12 ++ .../test262/built-ins/parseInt/S15.1.2.2_A9.5.js | 26 ++++ .../test262/built-ins/parseInt/S15.1.2.2_A9.6.js | 12 ++ js/src/tests/test262/built-ins/parseInt/browser.js | 0 js/src/tests/test262/built-ins/parseInt/name.js | 28 +++++ .../built-ins/parseInt/not-a-constructor.js | 31 +++++ .../tests/test262/built-ins/parseInt/prop-desc.js | 18 +++ js/src/tests/test262/built-ins/parseInt/shell.js | 52 ++++++++ 62 files changed, 1728 insertions(+) create mode 100644 js/src/tests/test262/built-ins/parseInt/15.1.2.2-2-1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T2.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T3.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T4.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T5.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T6.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T7.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T2.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T3.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T4.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T5.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T6.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T7.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T8.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T9.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T2.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T3.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T4.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T5.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T6.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T7.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T2.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T3.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T2.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T2.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.1_T1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T2.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T2.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T3.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T4.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T5.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T6.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T2.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T2.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T3.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T2.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T3.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A8.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.1.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.2.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.3.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.4.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.5.js create mode 100644 js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.6.js create mode 100644 js/src/tests/test262/built-ins/parseInt/browser.js create mode 100644 js/src/tests/test262/built-ins/parseInt/name.js create mode 100644 js/src/tests/test262/built-ins/parseInt/not-a-constructor.js create mode 100644 js/src/tests/test262/built-ins/parseInt/prop-desc.js create mode 100644 js/src/tests/test262/built-ins/parseInt/shell.js (limited to 'js/src/tests/test262/built-ins/parseInt') diff --git a/js/src/tests/test262/built-ins/parseInt/15.1.2.2-2-1.js b/js/src/tests/test262/built-ins/parseInt/15.1.2.2-2-1.js new file mode 100644 index 0000000000..d259cb8b93 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/15.1.2.2-2-1.js @@ -0,0 +1,13 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-parseint-string-radix +description: > + parseInt - 'S' is the empty string when inputString does not + contain any such characters +---*/ + +assert.sameValue(parseInt(""), NaN, 'parseInt("") must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T1.js new file mode 100644 index 0000000000..acbaa83a0f --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T1.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToString +esid: sec-parseint-string-radix +description: Checking for boolean primitive +---*/ + +assert.sameValue(parseInt(true), NaN, 'parseInt(true) must return NaN'); +assert.sameValue(parseInt(false), NaN, 'parseInt(false) must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T2.js new file mode 100644 index 0000000000..67610f34dc --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T2.js @@ -0,0 +1,15 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToString +esid: sec-parseint-string-radix +description: Checking for number primitive +---*/ + +assert.sameValue(parseInt(-1), parseInt("-1"), 'parseInt(-1) must return the same value returned by parseInt("-1")'); +assert.sameValue(String(parseInt(Infinity)), "NaN", 'String(parseInt(Infinity)) must return "NaN"'); +assert.sameValue(String(parseInt(NaN)), "NaN", 'String(parseInt(NaN)) must return "NaN"'); +assert.sameValue(parseInt(-0), 0, 'parseInt(-0) must return 0'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T3.js new file mode 100644 index 0000000000..c291124ad0 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T3.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToString +esid: sec-parseint-string-radix +description: Checking for undefined and null +---*/ + +assert.sameValue(parseInt(undefined), NaN, 'parseInt(undefined) must return NaN'); +assert.sameValue(parseInt(null), NaN, 'parseInt(null) must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T4.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T4.js new file mode 100644 index 0000000000..90cd08c981 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T4.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToString +esid: sec-parseint-string-radix +description: Checking for Boolean object +---*/ + +assert.sameValue(parseInt(new Boolean(true)), NaN, 'parseInt(new Boolean(true)) must return NaN'); +assert.sameValue(parseInt(new Boolean(false)), NaN, 'parseInt(new Boolean(false)) must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T5.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T5.js new file mode 100644 index 0000000000..48d8ae51bc --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T5.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToString +esid: sec-parseint-string-radix +description: Checking for Number object +---*/ + +assert.sameValue(parseInt(new Number(-1)), parseInt("-1"), 'parseInt(new Number(-1)) must return the same value returned by parseInt("-1")'); + +assert.sameValue( + String(parseInt(new Number(Infinity))), + "NaN", + 'String(parseInt(new Number(Infinity))) must return "NaN"' +); + +assert.sameValue(String(parseInt(new Number(NaN))), "NaN", 'String(parseInt(new Number(NaN))) must return "NaN"'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T6.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T6.js new file mode 100644 index 0000000000..3ec5a743a3 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T6.js @@ -0,0 +1,21 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToString +esid: sec-parseint-string-radix +description: Checking for String object +---*/ + +assert.sameValue(parseInt(new String("-1")), parseInt("-1"), 'parseInt(new String("-1")) must return the same value returned by parseInt("-1")'); + +assert.sameValue( + String(parseInt(new String("Infinity"))), + "NaN", + 'String(parseInt(new String("Infinity"))) must return "NaN"' +); + +assert.sameValue(String(parseInt(new String("NaN"))), "NaN", 'String(parseInt(new String("NaN"))) must return "NaN"'); +assert.sameValue(String(parseInt(new String("false"))), "NaN", 'String(parseInt(new String("false"))) must return "NaN"'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T7.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T7.js new file mode 100644 index 0000000000..7a66642cc8 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T7.js @@ -0,0 +1,129 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToString +esid: sec-parseint-string-radix +description: If Type(value) is Object, evaluate ToPrimitive(value, String) +---*/ + +//CHECK#1 +var object = { + valueOf: function() { + return 1 + } +}; +assert.sameValue(parseInt(object), NaN, 'parseInt({valueOf: function() {return 1}}) must return NaN'); + +//CHECK#2 +var object = { + valueOf: function() { + return 1 + }, + toString: function() { + return 0 + } +}; + +assert.sameValue( + parseInt(object), + 0, + 'parseInt({valueOf: function() {return 1}, toString: function() {return 0}}) must return 0' +); + +//CHECK#3 +var object = { + valueOf: function() { + return 1 + }, + toString: function() { + return {} + } +}; + +assert.sameValue( + parseInt(object), + 1, + 'parseInt({valueOf: function() {return 1}, toString: function() {return {}}}) must return 1' +); + +//CHECK#4 +try { + var object = { + valueOf: function() { + throw "error" + }, + toString: function() { + return 1 + } + }; + + assert.sameValue( + parseInt(object), + 1, + 'parseInt({valueOf: function() {throw \\"error\\"}, toString: function() {return 1}}) must return 1' + ); +} +catch (e) { + assert.notSameValue(e, "error", 'The value of `e` is not "error"'); +} + +//CHECK#5 +var object = { + toString: function() { + return 1 + } +}; +assert.sameValue(parseInt(object), 1, 'parseInt({toString: function() {return 1}}) must return 1'); + +//CHECK#6 +var object = { + valueOf: function() { + return {} + }, + toString: function() { + return 1 + } +} + +assert.sameValue( + parseInt(object), + 1, + 'parseInt({valueOf: function() {return {}}, toString: function() {return 1}}) must return 1' +); + +//CHECK#7 +try { + var object = { + valueOf: function() { + return 1 + }, + toString: function() { + throw "error" + } + }; + parseInt(object); + Test262Error.thrower('#7.1: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; parseInt(object) throw "error". Actual: ' + (parseInt(object))); +} +catch (e) { + assert.sameValue(e, "error", 'The value of `e` is "error"'); +} + +//CHECK#8 +try { + var object = { + valueOf: function() { + return {} + }, + toString: function() { + return {} + } + }; + parseInt(object); + Test262Error.thrower('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; parseInt(object) throw TypeError. Actual: ' + (parseInt(object))); +} +catch (e) { + assert.sameValue(e instanceof TypeError, true, 'The result of `(e instanceof TypeError)` is true'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T1.js new file mode 100644 index 0000000000..e0051362d5 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T1.js @@ -0,0 +1,26 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator remove leading StrWhiteSpaceChar +esid: sec-parseint-string-radix +description: "StrWhiteSpaceChar :: TAB (U+0009)" +---*/ + +assert.sameValue(parseInt("\u00091"), parseInt("1"), 'parseInt("\\u00091") must return the same value returned by parseInt("1")'); + +assert.sameValue(parseInt("\u0009\u0009-1"), parseInt("-1"), 'parseInt("\\u0009\\u0009-1") must return the same value returned by parseInt("-1")'); + +assert.sameValue(parseInt(" 1"), parseInt("1"), 'parseInt(" 1") must return the same value returned by parseInt("1")'); + +assert.sameValue(parseInt(" 1"), parseInt("1"), 'parseInt(" 1") must return the same value returned by parseInt("1")'); + +assert.sameValue( + parseInt(" \u0009 \u0009-1"), + parseInt("-1"), + 'parseInt(" \\u0009 \\u0009-1") must return the same value returned by parseInt("-1")' +); + +assert.sameValue(parseInt("\u0009"), NaN, 'parseInt("\\u0009") must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10.js new file mode 100644 index 0000000000..5a137aeacb --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10.js @@ -0,0 +1,30 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator remove leading StrWhiteSpaceChar +esid: sec-parseint-string-radix +description: "StrWhiteSpaceChar :: USP" +---*/ + +var uspU = ["\u1680", "\u2000", "\u2001", "\u2002", "\u2003", "\u2004", "\u2005", "\u2006", "\u2007", "\u2008", "\u2009", "\u200A", "\u202F", "\u205F", "\u3000"]; +var uspS = ["1680", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "200A", "202F", "205F", "3000"]; + +for (var index = 0; index < uspU.length; index++) { + assert.sameValue( + parseInt(uspU[index] + "1"), + parseInt("1"), + 'parseInt(uspU[index] + "1") must return the same value returned by parseInt("1")' + ); + + assert.sameValue( + parseInt(uspU[index] + uspU[index] + uspU[index] + "1"), + parseInt("1"), + 'parseInt(uspU[index] + uspU[index] + uspU[index] + "1") must return the same value returned by parseInt("1")' + ); + + let n = parseInt(uspU[index]); + assert(n !== n, 'The result of `(n !== n)` is true'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js new file mode 100644 index 0000000000..b25a4c6310 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js @@ -0,0 +1,32 @@ +// Copyright (C) 2016 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-parseint-string-radix +description: > + Leading U+180E is not recognized as whitespace +info: | + 18.2.5 parseInt (string , radix) + + ... + 3. Let S be a newly created substring of inputString consisting of the + first code unit that is not a StrWhiteSpaceChar and all code units + following that code unit. (In other words, remove leading white + space.) If inputString does not contain any such code unit, let S + be the empty string + ... + 13. If S contains a code unit that is not a radix-R digit, let Z be + the substring of S consisting of all code units before the first + such code unit; otherwise, let Z be S. + 14. If Z is empty, return NaN. + ... +features: [u180e] +---*/ + +var mongolianVowelSeparator = "\u180E"; + +assert.sameValue(parseInt(mongolianVowelSeparator + "1"), NaN, 'parseInt(mongolianVowelSeparator + "1") must return NaN'); +assert.sameValue(parseInt(mongolianVowelSeparator + mongolianVowelSeparator + mongolianVowelSeparator + "1"), NaN, 'parseInt( mongolianVowelSeparator + mongolianVowelSeparator + mongolianVowelSeparator + "1" ) must return NaN'); +assert.sameValue(parseInt(mongolianVowelSeparator), NaN, 'parseInt("\\"\\\\u180E\\"") must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T2.js new file mode 100644 index 0000000000..8b98a4e845 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T2.js @@ -0,0 +1,24 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator remove leading StrWhiteSpaceChar +esid: sec-parseint-string-radix +description: "StrWhiteSpaceChar :: SP (U+0020)" +---*/ + +assert.sameValue(parseInt("\u00201"), parseInt("1"), 'parseInt("\\u00201") must return the same value returned by parseInt("1")'); +assert.sameValue(parseInt("\u0020\u0020-1"), parseInt("-1"), 'parseInt("\\u0020\\u0020-1") must return the same value returned by parseInt("-1")'); +assert.sameValue(parseInt(" 1"), parseInt("1"), 'parseInt(" 1") must return the same value returned by parseInt("1")'); +assert.sameValue(parseInt(" 1"), parseInt("1"), 'parseInt(" 1") must return the same value returned by parseInt("1")'); + +assert.sameValue( + parseInt(" \u0020 \u0020-1"), + parseInt("-1"), + 'parseInt(" \\u0020 \\u0020-1") must return the same value returned by parseInt("-1")' +); + +//CHECK#6 +assert.sameValue(parseInt("\u0020"), NaN, 'parseInt("\\u0020") must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T3.js new file mode 100644 index 0000000000..87eea3876a --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T3.js @@ -0,0 +1,16 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator remove leading StrWhiteSpaceChar +esid: sec-parseint-string-radix +description: "StrWhiteSpaceChar :: NBSB (U+00A0)" +---*/ + +assert.sameValue(parseInt("\u00A01"), parseInt("1"), 'parseInt("\\u00A01") must return the same value returned by parseInt("1")'); +assert.sameValue(parseInt("\u00A0\u00A0-1"), parseInt("-1"), 'parseInt("\\u00A0\\u00A0-1") must return the same value returned by parseInt("-1")'); + +//CHECK#3 +assert.sameValue(parseInt("\u00A0"), NaN, 'parseInt("\\u00A0") must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T4.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T4.js new file mode 100644 index 0000000000..e9e4897390 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T4.js @@ -0,0 +1,16 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator remove leading StrWhiteSpaceChar +esid: sec-parseint-string-radix +description: "StrWhiteSpaceChar :: FF (U+000C)" +---*/ + +assert.sameValue(parseInt("\u000C1"), parseInt("1"), 'parseInt("\\u000C1") must return the same value returned by parseInt("1")'); +assert.sameValue(parseInt("\u000C\u000C-1"), parseInt("-1"), 'parseInt("\\u000C\\u000C-1") must return the same value returned by parseInt("-1")'); + +//CHECK#3 +assert.sameValue(parseInt("\u000C"), NaN, 'parseInt("\\u000C") must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T5.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T5.js new file mode 100644 index 0000000000..5a85b23d0f --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T5.js @@ -0,0 +1,16 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator remove leading StrWhiteSpaceChar +esid: sec-parseint-string-radix +description: "StrWhiteSpaceChar :: VT (U+000B)" +---*/ + +assert.sameValue(parseInt("\u000B1"), parseInt("1"), 'parseInt("\\u000B1") must return the same value returned by parseInt("1")'); +assert.sameValue(parseInt("\u000B\u000B-1"), parseInt("-1"), 'parseInt("\\u000B\\u000B-1") must return the same value returned by parseInt("-1")'); + +//CHECK#3 +assert.sameValue(parseInt("\u000B"), NaN, 'parseInt("\\u000B") must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T6.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T6.js new file mode 100644 index 0000000000..509fb0672f --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T6.js @@ -0,0 +1,16 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator remove leading StrWhiteSpaceChar +esid: sec-parseint-string-radix +description: "StrWhiteSpaceChar :: CR (U+000D)" +---*/ + +assert.sameValue(parseInt("\u000D1"), parseInt("1"), 'parseInt("\\u000D1") must return the same value returned by parseInt("1")'); +assert.sameValue(parseInt("\u000D\u000D-1"), parseInt("-1"), 'parseInt("\\u000D\\u000D-1") must return the same value returned by parseInt("-1")'); + +//CHECK#3 +assert.sameValue(parseInt("\u000D"), NaN, 'parseInt("\\u000D") must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T7.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T7.js new file mode 100644 index 0000000000..8ea26297ff --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T7.js @@ -0,0 +1,16 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator remove leading StrWhiteSpaceChar +esid: sec-parseint-string-radix +description: "StrWhiteSpaceChar :: LF (U+000A)" +---*/ + +assert.sameValue(parseInt("\u000A1"), parseInt("1"), 'parseInt("\\u000A1") must return the same value returned by parseInt("1")'); +assert.sameValue(parseInt("\u000A\u000A-1"), parseInt("-1"), 'parseInt("\\u000A\\u000A-1") must return the same value returned by parseInt("-1")'); + +//CHECK#3 +assert.sameValue(parseInt("\u000A"), NaN, 'parseInt("\\u000A") must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T8.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T8.js new file mode 100644 index 0000000000..37b13b0938 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T8.js @@ -0,0 +1,16 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator remove leading StrWhiteSpaceChar +esid: sec-parseint-string-radix +description: "StrWhiteSpaceChar :: LS (U+2028)" +---*/ + +assert.sameValue(parseInt("\u20281"), parseInt("1"), 'parseInt("\\u20281") must return the same value returned by parseInt("1")'); +assert.sameValue(parseInt("\u2028\u2028-1"), parseInt("-1"), 'parseInt("\\u2028\\u2028-1") must return the same value returned by parseInt("-1")'); + +//CHECK#3 +assert.sameValue(parseInt("\u2028"), NaN, 'parseInt("\\u2028") must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T9.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T9.js new file mode 100644 index 0000000000..d809b1cd38 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T9.js @@ -0,0 +1,25 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator remove leading StrWhiteSpaceChar +esid: sec-parseint-string-radix +description: "StrWhiteSpaceChar :: PS (U+2029)" +---*/ + +assert.sameValue( + parseInt("\u20291"), + parseInt("1"), + 'parseInt("\\u20291") must return the same value returned by parseInt("1")' +); + +assert.sameValue( + parseInt("\u2029\u2029-1"), + parseInt("-1"), + 'parseInt("\\u2029\\u2029-1") must return the same value returned by parseInt("-1")' +); + +//CHECK#3 +assert.sameValue(parseInt("\u2029"), NaN, 'parseInt("\\u2029") must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T1.js new file mode 100644 index 0000000000..3b830fa139 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T1.js @@ -0,0 +1,15 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToNumber +esid: sec-parseint-string-radix +description: Checking for boolean primitive +---*/ + +assert.sameValue(parseInt("11", false), parseInt("11", 10), 'parseInt("11", false) must return the same value returned by parseInt("11", 10)'); + +//CHECK#2 +assert.sameValue(parseInt("11", true), NaN, 'parseInt("11", true) must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T2.js new file mode 100644 index 0000000000..4d7d8e339b --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T2.js @@ -0,0 +1,14 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToNumber +esid: sec-parseint-string-radix +description: Checking for string primitive +---*/ + +assert.sameValue(parseInt("11", "2"), parseInt("11", 2), 'parseInt("11", "2") must return the same value returned by parseInt("11", 2)'); +assert.sameValue(parseInt("11", "0"), parseInt("11", 10), 'parseInt("11", "0") must return the same value returned by parseInt("11", 10)'); +assert.sameValue(parseInt("11", ""), parseInt("11", 10), 'parseInt("11", "") must return the same value returned by parseInt("11", 10)'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T3.js new file mode 100644 index 0000000000..95753742f2 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T3.js @@ -0,0 +1,17 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToNumber +esid: sec-parseint-string-radix +description: Checking for undefined and null +---*/ + +assert.sameValue( + parseInt("11", undefined), + parseInt("11", 10), + 'parseInt("11", undefined) must return the same value returned by parseInt("11", 10)' +); +assert.sameValue(parseInt("11", null), parseInt("11", 10), 'parseInt("11", null) must return the same value returned by parseInt("11", 10)'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T4.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T4.js new file mode 100644 index 0000000000..976cba3fb9 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T4.js @@ -0,0 +1,19 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToNumber +esid: sec-parseint-string-radix +description: Checking for Boolean object +---*/ + +assert.sameValue( + parseInt("11", new Boolean(false)), + parseInt("11", false), + 'parseInt("11", new Boolean(false)) must return the same value returned by parseInt("11", false)' +); + +//CHECK#2 +assert.sameValue(parseInt("11", new Boolean(true)), NaN, 'parseInt("11", new Boolean(true)) must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T5.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T5.js new file mode 100644 index 0000000000..cee375512d --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T5.js @@ -0,0 +1,21 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +info: Operator use ToNumber +esid: sec-parseint-string-radix +description: Checking for Number object +---*/ + +assert.sameValue( + parseInt("11", new Number(2)), + parseInt("11", 2), + 'parseInt("11", new Number(2)) must return the same value returned by parseInt("11", 2)' +); + +assert.sameValue( + parseInt("11", new Number(Infinity)), + parseInt("11", Infinity), + 'parseInt("11", new Number(Infinity)) must return the same value returned by parseInt("11", Infinity)' +); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T6.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T6.js new file mode 100644 index 0000000000..54ba3b142f --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T6.js @@ -0,0 +1,23 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToNumber +es5id: 15.1.2.2_A3.1_T6 +description: Checking for String object +esid: sec-parseint-string-radix +---*/ + +assert.sameValue( + parseInt("11", new String("2")), + parseInt("11", 2), + 'parseInt("11", new String("2")) must return the same value returned by parseInt("11", 2)' +); + +assert.sameValue( + parseInt("11", new String("Infinity")), + parseInt("11", Infinity), + 'parseInt("11", new String("Infinity")) must return the same value returned by parseInt("11", Infinity)' +); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T7.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T7.js new file mode 100644 index 0000000000..7fcf36d644 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T7.js @@ -0,0 +1,139 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToNumber +esid: sec-parseint-string-radix +description: If Type(value) is Object, evaluate ToPrimitive(value, Number) +---*/ + +//CHECK#1 +var object = { + valueOf: function() { + return 2 + } +}; + +assert.sameValue( + parseInt("11", object), + parseInt("11", 2), + 'parseInt("11", {valueOf: function() {return 2}}) must return the same value returned by parseInt("11", 2)' +); + +//CHECK#2 +var object = { + valueOf: function() { + return 2 + }, + toString: function() { + return 1 + } +}; + +assert.sameValue( + parseInt("11", object), + parseInt("11", 2), + 'parseInt("11", {valueOf: function() {return 2}, toString: function() {return 1}}) must return the same value returned by parseInt("11", 2)' +); + +//CHECK#3 +var object = { + valueOf: function() { + return 2 + }, + toString: function() { + return {} + } +}; + +assert.sameValue( + parseInt("11", object), + parseInt("11", 2), + 'parseInt("11", {valueOf: function() {return 2}, toString: function() {return {}}}) must return the same value returned by parseInt("11", 2)' +); + +//CHECK#4 +try { + var object = { + valueOf: function() { + return 2 + }, + toString: function() { + throw "error" + } + }; + + assert.sameValue( + parseInt("11", object), + parseInt("11", 2), + 'parseInt( "11", {valueOf: function() {return 2}, toString: function() {throw \\"error\\"}} ) must return the same value returned by parseInt("11", 2)' + ); +} +catch (e) { + assert.notSameValue(e, "error", 'The value of `e` is not "error"'); +} + +//CHECK#5 +var object = { + toString: function() { + return 2 + } +}; + +assert.sameValue( + parseInt("11", object), + parseInt("11", 2), + 'parseInt("11", {toString: function() {return 2}}) must return the same value returned by parseInt("11", 2)' +); + +//CHECK#6 +var object = { + valueOf: function() { + return {} + }, + toString: function() { + return 2 + } +} + +assert.sameValue( + parseInt("11", object), + parseInt("11", 2), + 'parseInt("11", {valueOf: function() {return {}}, toString: function() {return 2}}) must return the same value returned by parseInt("11", 2)' +); + +//CHECK#7 +try { + var object = { + valueOf: function() { + throw "error" + }, + toString: function() { + return 2 + } + }; + parseInt("11", object); + Test262Error.thrower('#7.1: var object = {valueOf: function() {throw "error"}, toString: function() {return 2}}; parseInt("11", object) throw "error". Actual: ' + (parseInt("11", object))); +} +catch (e) { + assert.sameValue(e, "error", 'The value of `e` is "error"'); +} + +//CHECK#8 +try { + var object = { + valueOf: function() { + return {} + }, + toString: function() { + return {} + } + }; + parseInt("11", object); + Test262Error.thrower('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; parseInt("11", object) throw TypeError. Actual: ' + (parseInt("11", object))); +} +catch (e) { + assert.sameValue(e instanceof TypeError, true, 'The result of `(e instanceof TypeError)` is true'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T1.js new file mode 100644 index 0000000000..ceb40d836f --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T1.js @@ -0,0 +1,26 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToInt32 +esid: sec-parseint-string-radix +description: If radix is NaN, +0, -0, +Infinity, -Infinity, return radix = +0 +---*/ + +assert.sameValue(parseInt("11", NaN), parseInt("11", 10), 'parseInt("11", NaN) must return the same value returned by parseInt("11", 10)'); +assert.sameValue(parseInt("11", +0), parseInt("11", 10), 'parseInt("11", +0) must return the same value returned by parseInt("11", 10)'); +assert.sameValue(parseInt("11", -0), parseInt("11", 10), 'parseInt("11", -0) must return the same value returned by parseInt("11", 10)'); + +assert.sameValue( + parseInt("11", Number.POSITIVE_INFINITY), + parseInt("11", 10), + 'parseInt("11", Number.POSITIVE_INFINITY) must return the same value returned by parseInt("11", 10)' +); + +assert.sameValue( + parseInt("11", Number.NEGATIVE_INFINITY), + parseInt("11", 10), + 'parseInt("11", Number.NEGATIVE_INFINITY) must return the same value returned by parseInt("11", 10)' +); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T2.js new file mode 100644 index 0000000000..cbfdf8119d --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T2.js @@ -0,0 +1,26 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToInt32 +esid: sec-parseint-string-radix +description: ToInt32 use floor +---*/ + +assert.sameValue(parseInt("11", 2.1), parseInt("11", 2), 'parseInt("11", 2.1) must return the same value returned by parseInt("11", 2)'); +assert.sameValue(parseInt("11", 2.5), parseInt("11", 2), 'parseInt("11", 2.5) must return the same value returned by parseInt("11", 2)'); +assert.sameValue(parseInt("11", 2.9), parseInt("11", 2), 'parseInt("11", 2.9) must return the same value returned by parseInt("11", 2)'); + +assert.sameValue( + parseInt("11", 2.000000000001), + parseInt("11", 2), + 'parseInt("11", 2.000000000001) must return the same value returned by parseInt("11", 2)' +); + +assert.sameValue( + parseInt("11", 2.999999999999), + parseInt("11", 2), + 'parseInt("11", 2.999999999999) must return the same value returned by parseInt("11", 2)' +); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T3.js new file mode 100644 index 0000000000..21008b91ef --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T3.js @@ -0,0 +1,29 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator use ToInt32 +esid: sec-parseint-string-radix +description: ToInt32 use modulo +---*/ + +assert.sameValue( + parseInt("11", 4294967298), + parseInt("11", 2), + 'parseInt("11", 4294967298) must return the same value returned by parseInt("11", 2)' +); +assert.sameValue( + parseInt("11", 4294967296), + parseInt("11", 10), + 'parseInt("11", 4294967296) must return the same value returned by parseInt("11", 10)' +); + +assert.sameValue(parseInt("11", -2147483650), NaN, 'parseInt("11", -2147483650) must return NaN'); + +assert.sameValue( + parseInt("11", -4294967294), + parseInt("11", 2), + 'parseInt("11", -4294967294) must return the same value returned by parseInt("11", 2)' +); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T1.js new file mode 100644 index 0000000000..188f895c95 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T1.js @@ -0,0 +1,24 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: If R = 0 or R = undefined, then R = 10 +esid: sec-parseint-string-radix +description: R = 0 +---*/ + +assert.sameValue(parseInt("0", 0), parseInt("0", 10), 'parseInt("0", 0) must return the same value returned by parseInt("0", 10)'); +assert.sameValue(parseInt("1", 0), parseInt("1", 10), 'parseInt("1", 0) must return the same value returned by parseInt("1", 10)'); +assert.sameValue(parseInt("2", 0), parseInt("2", 10), 'parseInt("2", 0) must return the same value returned by parseInt("2", 10)'); +assert.sameValue(parseInt("3", 0), parseInt("3", 10), 'parseInt("3", 0) must return the same value returned by parseInt("3", 10)'); +assert.sameValue(parseInt("4", 0), parseInt("4", 10), 'parseInt("4", 0) must return the same value returned by parseInt("4", 10)'); +assert.sameValue(parseInt("5", 0), parseInt("5", 10), 'parseInt("5", 0) must return the same value returned by parseInt("5", 10)'); +assert.sameValue(parseInt("6", 0), parseInt("6", 10), 'parseInt("6", 0) must return the same value returned by parseInt("6", 10)'); +assert.sameValue(parseInt("7", 0), parseInt("7", 10), 'parseInt("7", 0) must return the same value returned by parseInt("7", 10)'); +assert.sameValue(parseInt("8", 0), parseInt("8", 10), 'parseInt("8", 0) must return the same value returned by parseInt("8", 10)'); +assert.sameValue(parseInt("9", 0), parseInt("9", 10), 'parseInt("9", 0) must return the same value returned by parseInt("9", 10)'); +assert.sameValue(parseInt("10", 0), parseInt("10", 10), 'parseInt("10", 0) must return the same value returned by parseInt("10", 10)'); +assert.sameValue(parseInt("11", 0), parseInt("11", 10), 'parseInt("11", 0) must return the same value returned by parseInt("11", 10)'); +assert.sameValue(parseInt("9999", 0), parseInt("9999", 10), 'parseInt("9999", 0) must return the same value returned by parseInt("9999", 10)'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T2.js new file mode 100644 index 0000000000..9d09d91ead --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T2.js @@ -0,0 +1,24 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: If R = 0 or R = undefined, then R = 10 +esid: sec-parseint-string-radix +description: R = undefined +---*/ + +assert.sameValue(parseInt("0"), parseInt("0", 10), 'parseInt("0") must return the same value returned by parseInt("0", 10)'); +assert.sameValue(parseInt("1"), parseInt("1", 10), 'parseInt("1") must return the same value returned by parseInt("1", 10)'); +assert.sameValue(parseInt("2"), parseInt("2", 10), 'parseInt("2") must return the same value returned by parseInt("2", 10)'); +assert.sameValue(parseInt("3"), parseInt("3", 10), 'parseInt("3") must return the same value returned by parseInt("3", 10)'); +assert.sameValue(parseInt("4"), parseInt("4", 10), 'parseInt("4") must return the same value returned by parseInt("4", 10)'); +assert.sameValue(parseInt("5"), parseInt("5", 10), 'parseInt("5") must return the same value returned by parseInt("5", 10)'); +assert.sameValue(parseInt("6"), parseInt("6", 10), 'parseInt("6") must return the same value returned by parseInt("6", 10)'); +assert.sameValue(parseInt("7"), parseInt("7", 10), 'parseInt("7") must return the same value returned by parseInt("7", 10)'); +assert.sameValue(parseInt("8"), parseInt("8", 10), 'parseInt("8") must return the same value returned by parseInt("8", 10)'); +assert.sameValue(parseInt("9"), parseInt("9", 10), 'parseInt("9") must return the same value returned by parseInt("9", 10)'); +assert.sameValue(parseInt("10"), parseInt("10", 10), 'parseInt("10") must return the same value returned by parseInt("10", 10)'); +assert.sameValue(parseInt("11"), parseInt("11", 10), 'parseInt("11") must return the same value returned by parseInt("11", 10)'); +assert.sameValue(parseInt("9999"), parseInt("9999", 10), 'parseInt("9999") must return the same value returned by parseInt("9999", 10)'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T1.js new file mode 100644 index 0000000000..4e98632bb0 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T1.js @@ -0,0 +1,23 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: If R < 2 or R > 36, then return NaN +esid: sec-parseint-string-radix +description: R = 1 +---*/ + +assert.sameValue(parseInt("0", 1), NaN, 'parseInt("0", 1) must return NaN'); +assert.sameValue(parseInt("1", 1), NaN, 'parseInt("1", 1) must return NaN'); +assert.sameValue(parseInt("2", 1), NaN, 'parseInt("2", 1) must return NaN'); +assert.sameValue(parseInt("3", 1), NaN, 'parseInt("3", 1) must return NaN'); +assert.sameValue(parseInt("4", 1), NaN, 'parseInt("4", 1) must return NaN'); +assert.sameValue(parseInt("5", 1), NaN, 'parseInt("5", 1) must return NaN'); +assert.sameValue(parseInt("6", 1), NaN, 'parseInt("6", 1) must return NaN'); +assert.sameValue(parseInt("7", 1), NaN, 'parseInt("7", 1) must return NaN'); +assert.sameValue(parseInt("8", 1), NaN, 'parseInt("8", 1) must return NaN'); +assert.sameValue(parseInt("9", 1), NaN, 'parseInt("9", 1) must return NaN'); +assert.sameValue(parseInt("10", 1), NaN, 'parseInt("10", 1) must return NaN'); +assert.sameValue(parseInt("11", 1), NaN, 'parseInt("11", 1) must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T2.js new file mode 100644 index 0000000000..82d2be2d51 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T2.js @@ -0,0 +1,23 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: If R < 2 or R > 36, then return NaN +esid: sec-parseint-string-radix +description: R = 37 +---*/ + +assert.sameValue(parseInt("0", 37), NaN, 'parseInt("0", 37) must return NaN'); +assert.sameValue(parseInt("1", 37), NaN, 'parseInt("1", 37) must return NaN'); +assert.sameValue(parseInt("2", 37), NaN, 'parseInt("2", 37) must return NaN'); +assert.sameValue(parseInt("3", 37), NaN, 'parseInt("3", 37) must return NaN'); +assert.sameValue(parseInt("4", 37), NaN, 'parseInt("4", 37) must return NaN'); +assert.sameValue(parseInt("5", 37), NaN, 'parseInt("5", 37) must return NaN'); +assert.sameValue(parseInt("6", 37), NaN, 'parseInt("6", 37) must return NaN'); +assert.sameValue(parseInt("7", 37), NaN, 'parseInt("7", 37) must return NaN'); +assert.sameValue(parseInt("8", 37), NaN, 'parseInt("8", 37) must return NaN'); +assert.sameValue(parseInt("9", 37), NaN, 'parseInt("9", 37) must return NaN'); +assert.sameValue(parseInt("10", 37), NaN, 'parseInt("10", 37) must return NaN'); +assert.sameValue(parseInt("11", 37), NaN, 'parseInt("11", 37) must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.1_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.1_T1.js new file mode 100644 index 0000000000..4f093ab097 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.1_T1.js @@ -0,0 +1,16 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + parseInt is no longer allowed to treat a leading zero as indicating + octal. "If radix is undefined or 0, it is assumed to be 10 except + when the number begins with the character pairs 0x or 0X, in which + case a radix of 16 is assumed." +esid: sec-parseint-string-radix +description: Check if parseInt still accepts octal +---*/ + +assert.sameValue(parseInt('010'), 10, 'parseInt(\'010\') must return 10'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T1.js new file mode 100644 index 0000000000..9420440f4e --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T1.js @@ -0,0 +1,36 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + If the length of S is at least 2 and the first two characters of S + are either 0x or 0X, then remove the first two characters from S and let R = 16 +esid: sec-parseint-string-radix +description: ": 0x" +---*/ + +assert.sameValue(parseInt("0x0", 0), parseInt("0", 16), 'parseInt("0x0", 0) must return the same value returned by parseInt("0", 16)'); +assert.sameValue(parseInt("0x1", 0), parseInt("1", 16), 'parseInt("0x1", 0) must return the same value returned by parseInt("1", 16)'); +assert.sameValue(parseInt("0x2", 0), parseInt("2", 16), 'parseInt("0x2", 0) must return the same value returned by parseInt("2", 16)'); +assert.sameValue(parseInt("0x3", 0), parseInt("3", 16), 'parseInt("0x3", 0) must return the same value returned by parseInt("3", 16)'); +assert.sameValue(parseInt("0x4", 0), parseInt("4", 16), 'parseInt("0x4", 0) must return the same value returned by parseInt("4", 16)'); +assert.sameValue(parseInt("0x5", 0), parseInt("5", 16), 'parseInt("0x5", 0) must return the same value returned by parseInt("5", 16)'); +assert.sameValue(parseInt("0x6", 0), parseInt("6", 16), 'parseInt("0x6", 0) must return the same value returned by parseInt("6", 16)'); +assert.sameValue(parseInt("0x7", 0), parseInt("7", 16), 'parseInt("0x7", 0) must return the same value returned by parseInt("7", 16)'); +assert.sameValue(parseInt("0x8", 0), parseInt("8", 16), 'parseInt("0x8", 0) must return the same value returned by parseInt("8", 16)'); +assert.sameValue(parseInt("0x9", 0), parseInt("9", 16), 'parseInt("0x9", 0) must return the same value returned by parseInt("9", 16)'); +assert.sameValue(parseInt("0xA", 0), parseInt("A", 16), 'parseInt("0xA", 0) must return the same value returned by parseInt("A", 16)'); +assert.sameValue(parseInt("0xB", 0), parseInt("B", 16), 'parseInt("0xB", 0) must return the same value returned by parseInt("B", 16)'); +assert.sameValue(parseInt("0xC", 0), parseInt("C", 16), 'parseInt("0xC", 0) must return the same value returned by parseInt("C", 16)'); +assert.sameValue(parseInt("0xD", 0), parseInt("D", 16), 'parseInt("0xD", 0) must return the same value returned by parseInt("D", 16)'); +assert.sameValue(parseInt("0xE", 0), parseInt("E", 16), 'parseInt("0xE", 0) must return the same value returned by parseInt("E", 16)'); +assert.sameValue(parseInt("0xF", 0), parseInt("F", 16), 'parseInt("0xF", 0) must return the same value returned by parseInt("F", 16)'); +assert.sameValue(parseInt("0xE", 0), parseInt("E", 16), 'parseInt("0xE", 0) must return the same value returned by parseInt("E", 16)'); + +assert.sameValue( + parseInt("0xABCDEF", 0), + parseInt("ABCDEF", 16), + 'parseInt("0xABCDEF", 0) must return the same value returned by parseInt("ABCDEF", 16)' +); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T2.js new file mode 100644 index 0000000000..6005e1853c --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T2.js @@ -0,0 +1,31 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + If the length of S is at least 2 and the first two characters of S + are either 0x or 0X, then remove the first two characters from S and let R = 16 +esid: sec-parseint-string-radix +description: ": 0X" +---*/ + +assert.sameValue(parseInt("0X0", 0), parseInt("0", 16), 'parseInt("0X0", 0) must return the same value returned by parseInt("0", 16)'); +assert.sameValue(parseInt("0X1"), parseInt("1", 16), 'parseInt("0X1") must return the same value returned by parseInt("1", 16)'); +assert.sameValue(parseInt("0X2"), parseInt("2", 16), 'parseInt("0X2") must return the same value returned by parseInt("2", 16)'); +assert.sameValue(parseInt("0X3"), parseInt("3", 16), 'parseInt("0X3") must return the same value returned by parseInt("3", 16)'); +assert.sameValue(parseInt("0X4"), parseInt("4", 16), 'parseInt("0X4") must return the same value returned by parseInt("4", 16)'); +assert.sameValue(parseInt("0X5"), parseInt("5", 16), 'parseInt("0X5") must return the same value returned by parseInt("5", 16)'); +assert.sameValue(parseInt("0X6"), parseInt("6", 16), 'parseInt("0X6") must return the same value returned by parseInt("6", 16)'); +assert.sameValue(parseInt("0X7"), parseInt("7", 16), 'parseInt("0X7") must return the same value returned by parseInt("7", 16)'); +assert.sameValue(parseInt("0X8"), parseInt("8", 16), 'parseInt("0X8") must return the same value returned by parseInt("8", 16)'); +assert.sameValue(parseInt("0X9"), parseInt("9", 16), 'parseInt("0X9") must return the same value returned by parseInt("9", 16)'); +assert.sameValue(parseInt("0XA"), parseInt("A", 16), 'parseInt("0XA") must return the same value returned by parseInt("A", 16)'); +assert.sameValue(parseInt("0XB"), parseInt("B", 16), 'parseInt("0XB") must return the same value returned by parseInt("B", 16)'); +assert.sameValue(parseInt("0XC"), parseInt("C", 16), 'parseInt("0XC") must return the same value returned by parseInt("C", 16)'); +assert.sameValue(parseInt("0XD"), parseInt("D", 16), 'parseInt("0XD") must return the same value returned by parseInt("D", 16)'); +assert.sameValue(parseInt("0XE"), parseInt("E", 16), 'parseInt("0XE") must return the same value returned by parseInt("E", 16)'); +assert.sameValue(parseInt("0XF"), parseInt("F", 16), 'parseInt("0XF") must return the same value returned by parseInt("F", 16)'); +assert.sameValue(parseInt("0XE"), parseInt("E", 16), 'parseInt("0XE") must return the same value returned by parseInt("E", 16)'); +assert.sameValue(parseInt("0XABCDEF"), parseInt("ABCDEF", 16), 'parseInt("0XABCDEF") must return the same value returned by parseInt("ABCDEF", 16)'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T1.js new file mode 100644 index 0000000000..5dae09a943 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T1.js @@ -0,0 +1,18 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + If S contains any character that is not a radix-R digit, + then let Z be the substring of S consisting of all characters before + the first such character; otherwise, let Z be S +esid: sec-parseint-string-radix +description: Complex test. R in [2, 36] +---*/ + +//CHECK# +for (var i = 2; i <= 36; i++) { + assert.sameValue(parseInt("10$1", i), i, 'parseInt("10$1", i) must return the value of i'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T2.js new file mode 100644 index 0000000000..911f178e14 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T2.js @@ -0,0 +1,19 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + If S contains any character that is not a radix-R digit, + then let Z be the substring of S consisting of all characters before + the first such character; otherwise, let Z be S +esid: sec-parseint-string-radix +description: Complex test. Radix-R notation in [0..9, A-Z] +---*/ + +//CHECK# +var R_digit = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]; +for (var i = 2; i <= 36; i++) { + assert.sameValue(parseInt(R_digit[i - 2] + "$", i), i - 1, 'parseInt(R_digit[i - 2] + "$", 2) must return i - 1'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T3.js new file mode 100644 index 0000000000..efe0fca72b --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T3.js @@ -0,0 +1,19 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + If S contains any character that is not a radix-R digit, + then let Z be the substring of S consisting of all characters before + the first such character; otherwise, let Z be S +esid: sec-parseint-string-radix +description: Complex test. Radix-R notation in [0..9, a-z] +---*/ + +//CHECK# +var R_digit = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]; +for (var i = 2; i <= 36; i++) { + assert.sameValue(parseInt(R_digit[i - 2] + "$", i), i - 1, 'parseInt(R_digit[i - 2] + "$", i) must return i - 1'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T4.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T4.js new file mode 100644 index 0000000000..e67187d75e --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T4.js @@ -0,0 +1,23 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + If S contains any character that is not a radix-R digit, + then let Z be the substring of S consisting of all characters before + the first such character; otherwise, let Z be S +esid: sec-parseint-string-radix +description: Complex test. Radix-R notation in [0..9, A-Z] +---*/ + +//CHECK# +var R_digit = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]; +for (var i = 2; i <= 35; i++) { + assert.sameValue( + parseInt(R_digit[i - 2] + R_digit[i - 1], i), + i - 1, + 'parseInt(R_digit[i - 2] + R_digit[i - 1], i) must return i - 1' + ); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T5.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T5.js new file mode 100644 index 0000000000..abe5a8831d --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T5.js @@ -0,0 +1,23 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + If S contains any character that is not a radix-R digit, + then let Z be the substring of S consisting of all characters before + the first such character; otherwise, let Z be S +esid: sec-parseint-string-radix +description: Complex test. Radix-R notation in [0..9, a-z] +---*/ + +//CHECK# +var R_digit = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]; +for (var i = 2; i <= 35; i++) { + assert.sameValue( + parseInt(R_digit[i - 2] + R_digit[i - 1], i), + i - 1, + 'parseInt(R_digit[i - 2] + R_digit[i - 1], i) must return i - 1' + ); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T6.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T6.js new file mode 100644 index 0000000000..3942540f0e --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T6.js @@ -0,0 +1,28 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + If S contains any character that is not a radix-R digit, + then let Z be the substring of S consisting of all characters before + the first such character; otherwise, let Z be S +esid: sec-parseint-string-radix +description: Complex test. Radix-R notation in [0..9] +---*/ + +assert.sameValue(parseInt("0123456789", 2), 1, 'parseInt("0123456789", 2) must return 1'); +assert.sameValue(parseInt("01234567890", 3), 5, 'parseInt("01234567890", 3) must return 5'); +assert.sameValue(parseInt("01234567890", 4), 27, 'parseInt("01234567890", 4) must return 27'); +assert.sameValue(parseInt("01234567890", 5), 194, 'parseInt("01234567890", 5) must return 194'); +assert.sameValue(parseInt("01234567890", 6), 1865, 'parseInt("01234567890", 6) must return 1865'); +assert.sameValue(parseInt("01234567890", 7), 22875, 'parseInt("01234567890", 7) must return 22875'); +assert.sameValue(parseInt("01234567890", 8), 342391, 'parseInt("01234567890", 8) must return 342391'); +assert.sameValue(parseInt("01234567890", 9), 6053444, 'parseInt("01234567890", 9) must return 6053444'); + +assert.sameValue( + parseInt("01234567890", 10), + Number(1234567890), + 'parseInt("01234567890", 10) must return the same value returned by Number(1234567890)' +); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T1.js new file mode 100644 index 0000000000..d262481edb --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T1.js @@ -0,0 +1,15 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: If Z is empty, return NaN +esid: sec-parseint-string-radix +description: Complex test. R in [2, 36] +---*/ + +//CHECK# +for (var i = 2; i <= 36; i++) { + assert.sameValue(parseInt("$string", i), NaN, 'parseInt("$string", i) must return NaN'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T2.js new file mode 100644 index 0000000000..3ee68cc1df --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T2.js @@ -0,0 +1,16 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: If Z is empty, return NaN +esid: sec-parseint-string-radix +description: x is not a radix-R digit +---*/ + +assert.sameValue(parseInt("$0x"), NaN, 'parseInt("$0x") must return NaN'); +assert.sameValue(parseInt("$0X"), NaN, 'parseInt("$0X") must return NaN'); +assert.sameValue(parseInt("$$$"), NaN, 'parseInt("$$$") must return NaN'); +assert.sameValue(parseInt(""), NaN, 'parseInt("") must return NaN'); +assert.sameValue(parseInt(" "), NaN, 'parseInt(" ") must return NaN'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T1.js new file mode 100644 index 0000000000..1e0aa7d45c --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T1.js @@ -0,0 +1,36 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + Compute the mathematical integer value + that is represented by Z in radix-R notation, using the + letters A-Z and a-z for digits with values 10 through 35. + Compute the number value for Result(16) +esid: sec-parseint-string-radix +description: Complex test. Check algorithm +---*/ + +//CHECK# +var R_digit1 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]; +var R_digit2 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]; +for (var i = 2; i <= 36; i++) { + for (var j = 0; j < 10; j++) { + var str = ""; + var num = 0; + var pow = 1; + var k0 = Math.max(2, i - j); + for (var k = k0; k <= i; k++) { + if (k % 2 === 0) { + str = str + R_digit1[k - 2]; + } else { + str = str + R_digit2[k - 2]; + } + num = num + (i + (k0 - k) - 1) * pow; + pow = pow * i; + } + assert.sameValue(parseInt(str, i), num, 'parseInt("str + R_digit2[k - 2], i) must return the value of num'); + } +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T2.js new file mode 100644 index 0000000000..2a5f10d14f --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T2.js @@ -0,0 +1,35 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + Compute the mathematical integer value + that is represented by Z in radix-R notation, using the + letters A-Z and a-z for digits with values 10 through 35. + Compute the number value for Result(16) +esid: sec-parseint-string-radix +description: Checking algorithm for R = 2 +---*/ + +assert.sameValue(parseInt("1", 2), 1, 'parseInt("1", 2) must return 1'); +assert.sameValue(parseInt("11", 2), 3, 'parseInt("11", 2) must return 3'); +assert.sameValue(parseInt("111", 2), 7, 'parseInt("111", 2) must return 7'); +assert.sameValue(parseInt("1111", 2), 15, 'parseInt("1111", 2) must return 15'); +assert.sameValue(parseInt("11111", 2), 31, 'parseInt("11111", 2) must return 31'); +assert.sameValue(parseInt("111111", 2), 63, 'parseInt("111111", 2) must return 63'); +assert.sameValue(parseInt("1111111", 2), 127, 'parseInt("1111111", 2) must return 127'); +assert.sameValue(parseInt("11111111", 2), 255, 'parseInt("11111111", 2) must return 255'); +assert.sameValue(parseInt("111111111", 2), 511, 'parseInt("111111111", 2) must return 511'); +assert.sameValue(parseInt("1111111111", 2), 1023, 'parseInt("1111111111", 2) must return 1023'); +assert.sameValue(parseInt("11111111111", 2), 2047, 'parseInt("11111111111", 2) must return 2047'); +assert.sameValue(parseInt("111111111111", 2), 4095, 'parseInt("111111111111", 2) must return 4095'); +assert.sameValue(parseInt("1111111111111", 2), 8191, 'parseInt("1111111111111", 2) must return 8191'); +assert.sameValue(parseInt("11111111111111", 2), 16383, 'parseInt("11111111111111", 2) must return 16383'); +assert.sameValue(parseInt("111111111111111", 2), 32767, 'parseInt("111111111111111", 2) must return 32767'); +assert.sameValue(parseInt("1111111111111111", 2), 65535, 'parseInt("1111111111111111", 2) must return 65535'); +assert.sameValue(parseInt("11111111111111111", 2), 131071, 'parseInt("11111111111111111", 2) must return 131071'); +assert.sameValue(parseInt("111111111111111111", 2), 262143, 'parseInt("111111111111111111", 2) must return 262143'); +assert.sameValue(parseInt("1111111111111111111", 2), 524287, 'parseInt("1111111111111111111", 2) must return 524287'); +assert.sameValue(parseInt("11111111111111111111", 2), 1048575, 'parseInt("11111111111111111111", 2) must return 1048575'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T3.js new file mode 100644 index 0000000000..8c5a765b29 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T3.js @@ -0,0 +1,80 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + Compute the mathematical integer value + that is represented by Z in radix-R notation, using the + letters A-Z and a-z for digits with values 10 through 35. + Compute the number value for Result(16) +esid: sec-parseint-string-radix +description: Checking algorithm for R = 16 +---*/ + +assert.sameValue(parseInt("0x1", 16), 1, 'parseInt("0x1", 16) must return 1'); +assert.sameValue(parseInt("0X10", 16), 16, 'parseInt("0X10", 16) must return 16'); +assert.sameValue(parseInt("0x100", 16), 256, 'parseInt("0x100", 16) must return 256'); +assert.sameValue(parseInt("0X1000", 16), 4096, 'parseInt("0X1000", 16) must return 4096'); +assert.sameValue(parseInt("0x10000", 16), 65536, 'parseInt("0x10000", 16) must return 65536'); +assert.sameValue(parseInt("0X100000", 16), 1048576, 'parseInt("0X100000", 16) must return 1048576'); +assert.sameValue(parseInt("0x1000000", 16), 16777216, 'parseInt("0x1000000", 16) must return 16777216'); +assert.sameValue(parseInt("0x10000000", 16), 268435456, 'parseInt("0x10000000", 16) must return 268435456'); +assert.sameValue(parseInt("0x100000000", 16), 4294967296, 'parseInt("0x100000000", 16) must return 4294967296'); +assert.sameValue(parseInt("0x1000000000", 16), 68719476736, 'parseInt("0x1000000000", 16) must return 68719476736'); +assert.sameValue(parseInt("0x10000000000", 16), 1099511627776, 'parseInt("0x10000000000", 16) must return 1099511627776'); + +assert.sameValue( + parseInt("0x100000000000", 16), + 17592186044416, + 'parseInt("0x100000000000", 16) must return 17592186044416' +); + +assert.sameValue( + parseInt("0x1000000000000", 16), + 281474976710656, + 'parseInt("0x1000000000000", 16) must return 281474976710656' +); + +assert.sameValue( + parseInt("0x10000000000000", 16), + 4503599627370496, + 'parseInt("0x10000000000000", 16) must return 4503599627370496' +); + +assert.sameValue( + parseInt("0x100000000000000", 16), + 72057594037927936, + 'parseInt("0x100000000000000", 16) must return 72057594037927936' +); + +assert.sameValue( + parseInt("0x1000000000000000", 16), + 1152921504606846976, + 'parseInt("0x1000000000000000", 16) must return 1152921504606846976' +); + +assert.sameValue( + parseInt("0x10000000000000000", 16), + 18446744073709551616, + 'parseInt("0x10000000000000000", 16) must return 18446744073709551616' +); + +assert.sameValue( + parseInt("0x100000000000000000", 16), + 295147905179352825856, + 'parseInt("0x100000000000000000", 16) must return 295147905179352825856' +); + +assert.sameValue( + parseInt("0x1000000000000000000", 16), + 4722366482869645213696, + 'parseInt("0x1000000000000000000", 16) must return 4722366482869645213696' +); + +assert.sameValue( + parseInt("0x10000000000000000000", 16), + 75557863725914323419136, + 'parseInt("0x10000000000000000000", 16) must return 75557863725914323419136' +); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T1.js new file mode 100644 index 0000000000..758f846b47 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T1.js @@ -0,0 +1,37 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Return sign * Result(17) +esid: sec-parseint-string-radix +description: Complex test. Check algorithm +---*/ + +//CHECK# +var R_digit1 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]; +var R_digit2 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]; +for (var i = 2; i <= 36; i++) { + for (var j = 0; j < 10; j++) { + var str = "+"; + var sign = 1; + if (j % 2 !== 0) { + str = "-"; + sign = -1; + } + var num = 0; + var pow = 1; + var k0 = Math.max(2, i - j); + for (var k = k0; k <= i; k++) { + if (k % 2 === 0) { + str = str + R_digit1[k - 2]; + } else { + str = str + R_digit2[k - 2]; + } + num = num + (i + (k0 - k) - 1) * pow; + pow = pow * i; + } + assert.sameValue(parseInt(str, i), num * sign, 'parseInt("str + R_digit2[k - 2], i) must return num * sign'); + } +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T2.js new file mode 100644 index 0000000000..2198498818 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T2.js @@ -0,0 +1,36 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Return sign * Result(17) +esid: sec-parseint-string-radix +description: Checking algorithm for R = 2 +---*/ + +assert.sameValue(parseInt("-1", 2), -1, 'parseInt("-1", 2) must return -1'); +assert.sameValue(parseInt("-11", 2), -3, 'parseInt("-11", 2) must return -3'); +assert.sameValue(parseInt("-111", 2), -7, 'parseInt("-111", 2) must return -7'); +assert.sameValue(parseInt("-1111", 2), -15, 'parseInt("-1111", 2) must return -15'); +assert.sameValue(parseInt("-11111", 2), -31, 'parseInt("-11111", 2) must return -31'); +assert.sameValue(parseInt("-111111", 2), -63, 'parseInt("-111111", 2) must return -63'); +assert.sameValue(parseInt("-1111111", 2), -127, 'parseInt("-1111111", 2) must return -127'); +assert.sameValue(parseInt("-11111111", 2), -255, 'parseInt("-11111111", 2) must return -255'); +assert.sameValue(parseInt("-111111111", 2), -511, 'parseInt("-111111111", 2) must return -511'); +assert.sameValue(parseInt("-1111111111", 2), -1023, 'parseInt("-1111111111", 2) must return -1023'); +assert.sameValue(parseInt("-11111111111", 2), -2047, 'parseInt("-11111111111", 2) must return -2047'); +assert.sameValue(parseInt("-111111111111", 2), -4095, 'parseInt("-111111111111", 2) must return -4095'); +assert.sameValue(parseInt("-1111111111111", 2), -8191, 'parseInt("-1111111111111", 2) must return -8191'); +assert.sameValue(parseInt("-11111111111111", 2), -16383, 'parseInt("-11111111111111", 2) must return -16383'); +assert.sameValue(parseInt("-111111111111111", 2), -32767, 'parseInt("-111111111111111", 2) must return -32767'); +assert.sameValue(parseInt("-1111111111111111", 2), -65535, 'parseInt("-1111111111111111", 2) must return -65535'); +assert.sameValue(parseInt("-11111111111111111", 2), -131071, 'parseInt("-11111111111111111", 2) must return -131071'); +assert.sameValue(parseInt("-111111111111111111", 2), -262143, 'parseInt("-111111111111111111", 2) must return -262143'); +assert.sameValue(parseInt("-1111111111111111111", 2), -524287, 'parseInt("-1111111111111111111", 2) must return -524287'); + +assert.sameValue( + parseInt("-11111111111111111111", 2), + -1048575, + 'parseInt("-11111111111111111111", 2) must return -1048575' +); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T3.js new file mode 100644 index 0000000000..dd6aefd7f3 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T3.js @@ -0,0 +1,71 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Return sign * Result(17) +esid: sec-parseint-string-radix +description: Checking algorithm for R = 10 +---*/ + +assert.sameValue(parseInt("-1", 10), -1, 'parseInt("-1", 10) must return -1'); +assert.sameValue(parseInt("-10", 10), -10, 'parseInt("-10", 10) must return -10'); +assert.sameValue(parseInt("-100", 10), -100, 'parseInt("-100", 10) must return -100'); +assert.sameValue(parseInt("-1000", 10), -1000, 'parseInt("-1000", 10) must return -1000'); +assert.sameValue(parseInt("-10000", 10), -10000, 'parseInt("-10000", 10) must return -10000'); +assert.sameValue(parseInt("-100000", 10), -100000, 'parseInt("-100000", 10) must return -100000'); +assert.sameValue(parseInt("-1000000", 10), -1000000, 'parseInt("-1000000", 10) must return -1000000'); +assert.sameValue(parseInt("-10000000", 10), -10000000, 'parseInt("-10000000", 10) must return -10000000'); +assert.sameValue(parseInt("-100000000", 10), -100000000, 'parseInt("-100000000", 10) must return -100000000'); +assert.sameValue(parseInt("-1000000000", 10), -1000000000, 'parseInt("-1000000000", 10) must return -1000000000'); +assert.sameValue(parseInt("-10000000000", 10), -10000000000, 'parseInt("-10000000000", 10) must return -10000000000'); +assert.sameValue(parseInt("-100000000000", 10), -100000000000, 'parseInt("-100000000000", 10) must return -100000000000'); + +assert.sameValue( + parseInt("-1000000000000", 10), + -1000000000000, + 'parseInt("-1000000000000", 10) must return -1000000000000' +); + +assert.sameValue( + parseInt("-10000000000000", 10), + -10000000000000, + 'parseInt("-10000000000000", 10) must return -10000000000000' +); + +assert.sameValue( + parseInt("-100000000000000", 10), + -100000000000000, + 'parseInt("-100000000000000", 10) must return -100000000000000' +); + +assert.sameValue( + parseInt("-1000000000000000", 10), + -1000000000000000, + 'parseInt("-1000000000000000", 10) must return -1000000000000000' +); + +assert.sameValue( + parseInt("-10000000000000000", 10), + -10000000000000000, + 'parseInt("-10000000000000000", 10) must return -10000000000000000' +); + +assert.sameValue( + parseInt("-100000000000000000", 10), + -100000000000000000, + 'parseInt("-100000000000000000", 10) must return -100000000000000000' +); + +assert.sameValue( + parseInt("-1000000000000000000", 10), + -1000000000000000000, + 'parseInt("-1000000000000000000", 10) must return -1000000000000000000' +); + +assert.sameValue( + parseInt("-10000000000000000000", 10), + -10000000000000000000, + 'parseInt("-10000000000000000000", 10) must return -10000000000000000000' +); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A8.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A8.js new file mode 100644 index 0000000000..dd1892a869 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A8.js @@ -0,0 +1,60 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + parseInt may interpret only a leading portion of the string as + a number value; it ignores any characters that cannot be interpreted as part + of the notation of an decimal literal, and no indication is given that any such + characters were ignored. +esid: sec-parseint-string-radix +description: Complex test without eval +includes: [decimalToHexString.js] +---*/ + +//CHECK +var errorCount = 0; +var count = 0; +var indexP; +var indexO = 0; +for (var index = 0; index <= 65535; index++) { + if ((index < 0x0030) || (index > 0x0039) && + (index < 0x0041) || (index > 0x005A) && + (index < 0x0061) || (index > 0x007A)) { + if (parseInt("1Z" + String.fromCharCode(index), 36) !== 71) { + if (indexO === 0) { + indexO = index; + } else { + if ((index - indexP) !== 1) { + if ((indexP - indexO) !== 0) { + var hexP = decimalToHexString(indexP); + var hexO = decimalToHexString(indexO); + throw new Test262Error('#' + hexO + '-' + hexP + ' '); + } + else { + var hexP = decimalToHexString(indexP); + throw new Test262Error('#' + hexP + ' '); + } + indexO = index; + } + } + indexP = index; + errorCount++; + } + count++; + } +} + +if (errorCount > 0) { + if ((indexP - indexO) !== 0) { + var hexP = decimalToHexString(indexP); + var hexO = decimalToHexString(indexO); + throw new Test262Error('#' + hexO + '-' + hexP + ' '); + } else { + var hexP = decimalToHexString(indexP); + throw new Test262Error('#' + hexP + ' '); + } + throw new Test262Error('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' '); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.1.js new file mode 100644 index 0000000000..06f41bacc5 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.1.js @@ -0,0 +1,26 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: The length property of parseInt has the attribute DontEnum +esid: sec-parseint-string-radix +description: Checking use propertyIsEnumerable, for-in +---*/ + +assert.sameValue( + parseInt.propertyIsEnumerable('length'), + false, + 'parseInt.propertyIsEnumerable(\'length\') must return false' +); + +//CHECK#2 +var result = true; +for (var p in parseInt) { + if (p === "length") { + result = false; + } +} + +assert.sameValue(result, true, 'The value of `result` is true'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.2.js new file mode 100644 index 0000000000..579e0e2438 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.2.js @@ -0,0 +1,17 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: The length property of parseInt does not have the attribute DontDelete +esid: sec-parseint-string-radix +description: Checking use hasOwnProperty, delete +---*/ + +assert.sameValue(parseInt.hasOwnProperty('length'), true, 'parseInt.hasOwnProperty(\'length\') must return true'); + +delete parseInt.length; + +assert.sameValue(parseInt.hasOwnProperty('length'), false, 'parseInt.hasOwnProperty(\'length\') must return false'); +assert.notSameValue(parseInt.length, undefined, 'The value of parseInt.length is expected to not equal ``undefined``'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.3.js new file mode 100644 index 0000000000..13c6b3d6a8 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.3.js @@ -0,0 +1,14 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: The length property of parseInt has the attribute ReadOnly +esid: sec-parseint-string-radix +description: Checking if varying the length property fails +includes: [propertyHelper.js] +---*/ + +assert.sameValue(parseInt.length, 2, 'The value of parseInt.length is 2'); +verifyNotWritable(parseInt, "length", null, Infinity); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.4.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.4.js new file mode 100644 index 0000000000..59397bf745 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.4.js @@ -0,0 +1,12 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: The length property of parseInt is 2 +esid: sec-parseint-string-radix +description: parseInt.length === 2 +---*/ + +assert.sameValue(parseInt.length, 2, 'The value of parseInt.length is 2'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.5.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.5.js new file mode 100644 index 0000000000..574a0d0e28 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.5.js @@ -0,0 +1,26 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: The parseInt property has the attribute DontEnum +esid: sec-parseint-string-radix +description: Checking use propertyIsEnumerable, for-in +---*/ + +assert.sameValue( + this.propertyIsEnumerable('parseInt'), + false, + 'this.propertyIsEnumerable(\'parseInt\') must return false' +); + +//CHECK#2 +var result = true; +for (var p in this) { + if (p === "parseInt") { + result = false; + } +} + +assert.sameValue(result, true, 'The value of `result` is true'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.6.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.6.js new file mode 100644 index 0000000000..e1c1a194c1 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.6.js @@ -0,0 +1,12 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: The parseInt property has not prototype property +esid: sec-parseint-string-radix +description: Checking parseInt.prototype +---*/ + +assert.sameValue(Object.prototype.hasOwnProperty.call(parseInt, "prototype"), false, 'Object.prototype.hasOwnProperty.call(parseInt, "prototype") must return false'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/browser.js b/js/src/tests/test262/built-ins/parseInt/browser.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/js/src/tests/test262/built-ins/parseInt/name.js b/js/src/tests/test262/built-ins/parseInt/name.js new file mode 100644 index 0000000000..973b0707da --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/name.js @@ -0,0 +1,28 @@ +// Copyright (C) 2015 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-parseint-string-radix +description: > + parseInt.name is "parseInt". +info: | + parseInt (string , radix) + + 17 ECMAScript Standard Built-in Objects: + Every built-in Function object, including constructors, that is not + identified as an anonymous function has a name property whose value + is a String. + + Unless otherwise specified, the name property of a built-in Function + object, if it exists, has the attributes { [[Writable]]: false, + [[Enumerable]]: false, [[Configurable]]: true }. +includes: [propertyHelper.js] +---*/ + +assert.sameValue(parseInt.name, "parseInt", 'The value of parseInt.name is "parseInt"'); + +verifyNotEnumerable(parseInt, "name"); +verifyNotWritable(parseInt, "name"); +verifyConfigurable(parseInt, "name"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/not-a-constructor.js b/js/src/tests/test262/built-ins/parseInt/not-a-constructor.js new file mode 100644 index 0000000000..db318e6a34 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/not-a-constructor.js @@ -0,0 +1,31 @@ +// Copyright (C) 2020 Rick Waldron. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-ecmascript-standard-built-in-objects +description: > + parseInt does not implement [[Construct]], is not new-able +info: | + ECMAScript Function Objects + + Built-in function objects that are not identified as constructors do not + implement the [[Construct]] internal method unless otherwise specified in + the description of a particular function. + + sec-evaluatenew + + ... + 7. If IsConstructor(constructor) is false, throw a TypeError exception. + ... +includes: [isConstructor.js] +features: [Reflect.construct, arrow-function] +---*/ + +assert.sameValue(isConstructor(parseInt), false, 'isConstructor(parseInt) must return false'); + +assert.throws(TypeError, () => { + new parseInt(1); +}, '`new parseInt(1)` throws TypeError'); + + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/prop-desc.js b/js/src/tests/test262/built-ins/parseInt/prop-desc.js new file mode 100644 index 0000000000..2bdb00add7 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/prop-desc.js @@ -0,0 +1,18 @@ +// Copyright (C) 2019 Bocoup. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-parseint-string-radix +description: Property descriptor for parseInt +info: | + Every other data property described in clauses 18 through 26 and in Annex B.2 + has the attributes { [[Writable]]: true, [[Enumerable]]: false, + [[Configurable]]: true } unless otherwise specified. +includes: [propertyHelper.js] +---*/ + +verifyNotEnumerable(this, "parseInt"); +verifyWritable(this, "parseInt"); +verifyConfigurable(this, "parseInt"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/parseInt/shell.js b/js/src/tests/test262/built-ins/parseInt/shell.js new file mode 100644 index 0000000000..a9bb766df3 --- /dev/null +++ b/js/src/tests/test262/built-ins/parseInt/shell.js @@ -0,0 +1,52 @@ +// GENERATED, DO NOT EDIT +// file: decimalToHexString.js +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: | + Collection of functions used to assert the correctness of various encoding operations. +defines: [decimalToHexString, decimalToPercentHexString] +---*/ + +function decimalToHexString(n) { + var hex = "0123456789ABCDEF"; + n >>>= 0; + var s = ""; + while (n) { + s = hex[n & 0xf] + s; + n >>>= 4; + } + while (s.length < 4) { + s = "0" + s; + } + return s; +} + +function decimalToPercentHexString(n) { + var hex = "0123456789ABCDEF"; + return "%" + hex[(n >> 4) & 0xf] + hex[n & 0xf]; +} + +// file: isConstructor.js +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: | + Test if a given function is a constructor function. +defines: [isConstructor] +features: [Reflect.construct] +---*/ + +function isConstructor(f) { + if (typeof f !== "function") { + throw new Test262Error("isConstructor invoked with a non-function value"); + } + + try { + Reflect.construct(function(){}, [], f); + } catch (e) { + return false; + } + return true; +} -- cgit v1.2.3