diff options
author | Brian Terlson <brian.terlson@microsoft.com> | 2014-12-05 15:50:00 -0800 |
---|---|---|
committer | Brian Terlson <brian.terlson@microsoft.com> | 2014-12-07 15:33:09 -0800 |
commit | 2a74f0ec1b671f15fc7df3e1e294a65abc8ebac8 (patch) | |
tree | 7315f60ffd86513bf163c05e4252fab0810bfbe8 /test/language/expressions/postfix-increment | |
parent | da465e7399bcecd3c78fa1f5e898c9d52b4c7096 (diff) | |
download | qtdeclarative-testsuites-2a74f0ec1b671f15fc7df3e1e294a65abc8ebac8.tar.gz |
Reorganize ./test
Diffstat (limited to 'test/language/expressions/postfix-increment')
23 files changed, 605 insertions, 0 deletions
diff --git a/test/language/expressions/postfix-increment/11.3.1-2-1-s.js b/test/language/expressions/postfix-increment/11.3.1-2-1-s.js new file mode 100644 index 000000000..7752c8e00 --- /dev/null +++ b/test/language/expressions/postfix-increment/11.3.1-2-1-s.js @@ -0,0 +1,26 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// Ecma International makes this code available under the terms and conditions set +// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +// "Use Terms"). Any redistribution of this code must retain the above +// copyright and this notice and otherwise comply with the Use Terms. + +/*--- +es5id: 11.3.1-2-1-s +description: > + Strict Mode - SyntaxError is thrown if the identifier 'arguments' + appear as a PostfixExpression(arguments++) +flags: [onlyStrict] +includes: [runTestCase.js] +---*/ + +function testcase() { + "use strict"; + var blah = arguments; + try { + eval("arguments++;"); + return false; + } catch (e) { + return e instanceof SyntaxError && blah === arguments; + } + } +runTestCase(testcase); diff --git a/test/language/expressions/postfix-increment/11.3.1-2-1gs.js b/test/language/expressions/postfix-increment/11.3.1-2-1gs.js new file mode 100644 index 000000000..5725fb922 --- /dev/null +++ b/test/language/expressions/postfix-increment/11.3.1-2-1gs.js @@ -0,0 +1,18 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// Ecma International makes this code available under the terms and conditions set +// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +// "Use Terms"). Any redistribution of this code must retain the above +// copyright and this notice and otherwise comply with the Use Terms. + +/*--- +es5id: 11.3.1-2-1gs +description: > + Strict Mode - SyntaxError is throw if the identifier arguments + appear as a PostfixExpression(arguments++) +negative: SyntaxError +flags: [onlyStrict] +---*/ + +"use strict"; +throw NotEarlyError; +arguments++; diff --git a/test/language/expressions/postfix-increment/11.3.1-2-2-s.js b/test/language/expressions/postfix-increment/11.3.1-2-2-s.js new file mode 100644 index 000000000..1684c05de --- /dev/null +++ b/test/language/expressions/postfix-increment/11.3.1-2-2-s.js @@ -0,0 +1,26 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// Ecma International makes this code available under the terms and conditions set +// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +// "Use Terms"). Any redistribution of this code must retain the above +// copyright and this notice and otherwise comply with the Use Terms. + +/*--- +es5id: 11.3.1-2-2-s +description: > + Strict Mode - SyntaxError is thrown if the identifier 'eval' + appear as a PostfixExpression(eval++) +flags: [onlyStrict] +includes: [runTestCase.js] +---*/ + +function testcase() { + "use strict"; + var blah = eval; + try { + eval("eval++;"); + return false; + } catch (e) { + return e instanceof SyntaxError && blah === eval; + } + } +runTestCase(testcase); diff --git a/test/language/expressions/postfix-increment/11.3.1-2-3-s.js b/test/language/expressions/postfix-increment/11.3.1-2-3-s.js new file mode 100644 index 000000000..69560ad97 --- /dev/null +++ b/test/language/expressions/postfix-increment/11.3.1-2-3-s.js @@ -0,0 +1,22 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// Ecma International makes this code available under the terms and conditions set +// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +// "Use Terms"). Any redistribution of this code must retain the above +// copyright and this notice and otherwise comply with the Use Terms. + +/*--- +es5id: 11.3.1-2-3-s +description: > + Strict Mode - SyntaxError is not thrown if the identifier + 'arguments[...]' appears as a PostfixExpression(arguments++) +flags: [onlyStrict] +includes: [runTestCase.js] +---*/ + +function testcase() { + "use strict"; + arguments[1] = 7; + arguments[1]++; + return arguments[1]===8; + } +runTestCase(testcase); diff --git a/test/language/expressions/postfix-increment/S11.3.1_A1.1_T1.js b/test/language/expressions/postfix-increment/S11.3.1_A1.1_T1.js new file mode 100644 index 000000000..3e678b5ed --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A1.1_T1.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: Line Terminator between LeftHandSideExpression and "++" is not allowed +es5id: 11.3.1_A1.1_T1 +description: Checking Line Feed +negative: SyntaxError +---*/ + +//CHECK#1 +eval("var x = 1; x\u000A++"); diff --git a/test/language/expressions/postfix-increment/S11.3.1_A1.1_T2.js b/test/language/expressions/postfix-increment/S11.3.1_A1.1_T2.js new file mode 100644 index 000000000..296ea0000 --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A1.1_T2.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: Line Terminator between LeftHandSideExpression and "++" is not allowed +es5id: 11.3.1_A1.1_T2 +description: Carriage Return +negative: SyntaxError +---*/ + +//CHECK#1 +eval("var x = 1; x\u000D++"); diff --git a/test/language/expressions/postfix-increment/S11.3.1_A1.1_T3.js b/test/language/expressions/postfix-increment/S11.3.1_A1.1_T3.js new file mode 100644 index 000000000..d6a51bd55 --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A1.1_T3.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: Line Terminator between LeftHandSideExpression and "++" is not allowed +es5id: 11.3.1_A1.1_T3 +description: Checking Line Seprator +negative: SyntaxError +---*/ + +//CHECK#1 +eval("var x = 1; x\u2028++"); diff --git a/test/language/expressions/postfix-increment/S11.3.1_A1.1_T4.js b/test/language/expressions/postfix-increment/S11.3.1_A1.1_T4.js new file mode 100644 index 000000000..8afd23013 --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A1.1_T4.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: Line Terminator between LeftHandSideExpression and "++" is not allowed +es5id: 11.3.1_A1.1_T4 +description: Checking Paragraph separator +negative: SyntaxError +---*/ + +//CHECK#1 +eval("var x = 1; x\u2029++"); diff --git a/test/language/expressions/postfix-increment/S11.3.1_A1.2_T1.js b/test/language/expressions/postfix-increment/S11.3.1_A1.2_T1.js new file mode 100644 index 000000000..7f5470ce8 --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A1.2_T1.js @@ -0,0 +1,38 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: White Space between LeftHandSideExpression and "++" are allowed +es5id: 11.3.1_A1.2_T1 +description: Checking by using eval +---*/ + +//CHECK#1 +if (eval("var x = 0; x\u0009++; x") !== 1) { + $ERROR('#1: var x = 0; x\\u0009++; x === 1. Actual: ' + (x)); +} + +//CHECK#2 +if (eval("var x = 0; x\u000B++; x") !== 1) { + $ERROR('#2: var x = 0; x\\u000B++; x === 1. Actual: ' + (x)); +} + +//CHECK#3 +if (eval("var x = 0; x\u000C++; x") !== 1) { + $ERROR('#3: var x = 0; x\\u000C++; x === 1. Actual: ' + (x)); +} + +//CHECK#4 +if (eval("var x = 0; x\u0020++; x") !== 1) { + $ERROR('#4: var x = 0; x\\u0020++; x === 1. Actual: ' + (x)); +} + +//CHECK#5 +if (eval("var x = 0; x\u00A0++; x") !== 1) { + $ERROR('#5: var x = 0; x\\u00A0++; x === 1. Actual: ' + (x)); +} + +//CHECK#6 +if (eval("var x = 0; x\u0009\u000B\u000C\u0020\u00A0++; x") !== 1) { + $ERROR('#6: var x = 0; x\\u0009\\u000B\\u000C\\u0020\\u00A0++; x === 1. Actual: ' + (x)); +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A2.1_T1.js b/test/language/expressions/postfix-increment/S11.3.1_A2.1_T1.js new file mode 100644 index 000000000..459860f3c --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A2.1_T1.js @@ -0,0 +1,42 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator x++ uses GetValue and PutValue +es5id: 11.3.1_A2.1_T1 +description: Type(x) is Reference and GetBase(x) is not null +---*/ + +//CHECK#1 +var x = 1; +var y = x++; +if (y !== 1) { + $ERROR('#1: var x = 1; var y = x++; y === 1. Actual: ' + (y)); +} else { + if (x !== 1 + 1) { + $ERROR('#1: var x = 1; var y = x++; x === 1 + 1. Actual: ' + (x)); + } +} + +//CHECK#2 +this.x = 1; +var y = this.x++; +if (y !== 1) { + $ERROR('#2: this.x = 1; var y = this.x++; y === 1. Actual: ' + (y)); +} else { + if (this.x !== 1 + 1) { + $ERROR('#2: this.x = 1; var y = this.x++; this.x === 1 + 1. Actual: ' + (this.x)); + } +} + +//CHECK#3 +var object = new Object(); +object.prop = 1; +var y = object.prop++; +if (y !== 1) { + $ERROR('#3: var object = new Object(); object.prop = 1; var y = object.prop++; y === 1. Actual: ' + (y)); +} else { + if (this.x !== 1 + 1) { + $ERROR('#3: var object = new Object(); object.prop = 1; var y = object.prop++; object.prop === 1 + 1. Actual: ' + (object.prop)); + } +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A2.1_T2.js b/test/language/expressions/postfix-increment/S11.3.1_A2.1_T2.js new file mode 100644 index 000000000..8ad290056 --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A2.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: Operator x++ uses GetValue and PutValue +es5id: 11.3.1_A2.1_T2 +description: If GetBase(x) is null, throw ReferenceError +---*/ + +//CHECK#1 +try { + x++; + $ERROR('#1.1: x++ throw ReferenceError. Actual: ' + (x++)); +} +catch (e) { + if ((e instanceof ReferenceError) !== true) { + $ERROR('#1.2: x++ throw ReferenceError. Actual: ' + (e)); + } +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A2.1_T3.js b/test/language/expressions/postfix-increment/S11.3.1_A2.1_T3.js new file mode 100644 index 000000000..2e505b532 --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A2.1_T3.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 x++ uses GetValue and PutValue + ES6, 12.4.1 and 12.5.1 specify ReferenceError +es5id: 11.3.1_A2.1_T3 +description: If Type(x) is not Reference, throw ReferenceError +negative: ReferenceError +---*/ + +//CHECK#1 +try { + 1++; + $ERROR('#1.1: 1++ throw ReferenceError. Actual: ' + (1++)); +} +catch (e) { + if ((e instanceof ReferenceError) !== true) { + $ERROR('#1.2: 1++ throw ReferenceError. Actual: ' + (e)); + } else { + 1++; + } +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A2.2_T1.js b/test/language/expressions/postfix-increment/S11.3.1_A2.2_T1.js new file mode 100644 index 000000000..de58a5f9e --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A2.2_T1.js @@ -0,0 +1,108 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator x++ uses [[Default Value]] +es5id: 11.3.1_A2.2_T1 +description: If Type(value) is Object, evaluate ToPrimitive(value, Number) +---*/ + +//CHECK#1 +var object = {valueOf: function() {return 1}}; +var y = object++; +if (y !== 1) { + $ERROR('#1: var object = {valueOf: function() {return 1}}; var y = object++; y === 1. Actual: ' + (y)); +} else { + if (object !== 1 + 1) { + $ERROR('#1: var object = {valueOf: function() {return 1}}; object++; object === 1 + 1. Actual: ' + (object)); + } +} + +//CHECK#2 +var object = {valueOf: function() {return 1}, toString: function() {return 0}}; +var y = object++; +if (y !== 1) { + $ERROR('#2: var object = {valueOf: function() {return 1}, toString: function() {return 0}}; var y = object++; y === 1. Actual: ' + (y)); +} else { + if (object !== 1 + 1) { + $ERROR('#2: var object = {valueOf: function() {return 1}, toString: function() {return 0}}; object++; object === 1 + 1. Actual: ' + (object)); + } +} + +//CHECK#3 +var object = {valueOf: function() {return 1}, toString: function() {return {}}}; +var y = object++; +if (y !== 1) { + $ERROR('#3: var object = {valueOf: function() {return 1}, toString: function() {return {}}}; var y = object++; y === 1. Actual: ' + (y)); +} else { + if (object !== 1 + 1) { + $ERROR('#3: var object = {valueOf: function() {return 1}, toString: function() {return {}}}; object++; object === 1 + 1. Actual: ' + (object)); + } +} + +//CHECK#4 +try { + var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; + var y = object++; + if (y !== 1) { + $ERROR('#4.1: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; var y = object++; y === 1. Actual: ' + (y)); + } else { + if (object !== 1 + 1) { + $ERROR('#4.2: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; object++; object === 1 + 1. Actual: ' + (object)); + } + } +} +catch (e) { + if (e === "error") { + $ERROR('#4.3: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; var y = object++; y not throw "error"'); + } else { + $ERROR('#4.4: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; var y = object++; y not throw Error. Actual: ' + (e)); + } +} + +//CHECK#5 +var object = {toString: function() {return 1}}; +var y = object++; +if (y !== 1) { + $ERROR('#5.1: var object = {toString: function() {return 1}}; var y = object++; y === 1. Actual: ' + (y)); +} else { + if (object !== 1 + 1) { + $ERROR('#5.2: var object = {toString: function() {return 1}}; object++; object === 1 + 1. Actual: ' + (object)); + } +} + + +//CHECK#6 +var object = {valueOf: function() {return {}}, toString: function() {return 1}} +var y = object++; +if (y !== 1) { + $ERROR('#6.1: var object = {valueOf: function() {return {}}, toString: function() {return 1}}; var y = object++; y === 1. Actual: ' + (y)); +} else { + if (object !== 1 + 1) { + $ERROR('#6.2: var object = {valueOf: function() {return {}}, toString: function() {return 1}}; object++; object === 1 + 1. Actual: ' + (object)); + } +} + +//CHECK#7 +try { + var object = {valueOf: function() {throw "error"}, toString: function() {return 1}}; + var y = object++; + $ERROR('#7.1: var object = {valueOf: function() {throw "error"}, toString: function() {return 1}}; object++ throw "error". Actual: ' + (y)); +} +catch (e) { + if (e !== "error") { + $ERROR('#7.2: var object = {valueOf: function() {throw "error"}, toString: function() {return 1}}; object++ throw "error". Actual: ' + (e)); + } +} + +//CHECK#8 +try { + var object = {valueOf: function() {return {}}, toString: function() {return {}}}; + var y = object++; + $ERROR('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; object++ throw TypeError. Actual: ' + (y)); +} +catch (e) { + if ((e instanceof TypeError) !== true) { + $ERROR('#8.2: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; object++ throw TypeError. Actual: ' + (e)); + } +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A3_T1.js b/test/language/expressions/postfix-increment/S11.3.1_A3_T1.js new file mode 100644 index 000000000..b70e93fe0 --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A3_T1.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator x++ returns x = ToNumber(x) + 1 +es5id: 11.3.1_A3_T1 +description: Type(x) is boolean primitive or Boolean object +---*/ + +//CHECK#1 +var x = false; +x++; +if (x !== 0 + 1) { + $ERROR('#1: var x = false; x++; x === 0 + 1. Actual: ' + (x)); +} + +//CHECK#2 +var x = new Boolean(true); +x++; +if (x !== 1 + 1) { + $ERROR('#2: var x = new Boolean(true); x++; x === 1 + 1. Actual: ' + (x)); +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A3_T2.js b/test/language/expressions/postfix-increment/S11.3.1_A3_T2.js new file mode 100644 index 000000000..7cfe79561 --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A3_T2.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator x++ returns x = ToNumber(x) + 1 +es5id: 11.3.1_A3_T2 +description: Type(x) is number primitive or Number object +---*/ + +//CHECK#1 +var x = 0.1; +x++; +if (x !== 0.1 + 1) { + $ERROR('#1: var x = 0.1; x++; x === 0.1 + 1. Actual: ' + (x)); +} + +//CHECK#2 +var x = new Number(-1.1); +x++; +if (x !== -1.1 + 1) { + $ERROR('#2: var x = new Number(-1.1); x++; x === -1.1 + 1. Actual: ' + (x)); +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A3_T3.js b/test/language/expressions/postfix-increment/S11.3.1_A3_T3.js new file mode 100644 index 000000000..f200a1a21 --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A3_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 x++ returns x = ToNumber(x) + 1 +es5id: 11.3.1_A3_T3 +description: Type(x) is string primitive or String object +---*/ + +//CHECK#1 +var x = "1"; +x++; +if (x !== 1 + 1) { + $ERROR('#1: var x = "1"; x++; x === 1 + 1. Actual: ' + (x)); +} + +//CHECK#2 +var x = "x"; +x++; +if (isNaN(x) !== true) { + $ERROR('#2: var x = "x"; x++; x === Not-a-Number. Actual: ' + (x)); +} + +//CHECK#3 +var x = new Number("-1"); +x++; +if (x !== -1 + 1) { + $ERROR('#3: var x = new String("-1"); x++; x === -1 + 1. Actual: ' + (x)); +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A3_T4.js b/test/language/expressions/postfix-increment/S11.3.1_A3_T4.js new file mode 100644 index 000000000..facd55839 --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A3_T4.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator x++ returns x = ToNumber(x) + 1 +es5id: 11.3.1_A3_T4 +description: Type(x) is undefined or null +---*/ + +//CHECK#1 +var x; +x++; +if (isNaN(x) !== true) { + $ERROR('#1: var x; x++; x === Not-a-Number. Actual: ' + (x)); +} + +//CHECK#2 +var x = null; +x++; +if (x !== 1) { + $ERROR('#2: var x = null; x++; x === 1. Actual: ' + (x)); +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A3_T5.js b/test/language/expressions/postfix-increment/S11.3.1_A3_T5.js new file mode 100644 index 000000000..6006cb36f --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A3_T5.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator x++ returns x = ToNumber(x) + 1 +es5id: 11.3.1_A3_T5 +description: Type(x) is Object object or Function object +---*/ + +//CHECK#1 +var x = {}; +x++; +if (isNaN(x) !== true) { + $ERROR('#1: var x = {}; x++; x === Not-a-Number. Actual: ' + (x)); +} + +//CHECK#2 +var x = function(){return 1}; +x++; +if (isNaN(x) !== true) { + $ERROR('#2: var x = function(){return 1}; x++; x === Not-a-Number. Actual: ' + (x)); +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A4_T1.js b/test/language/expressions/postfix-increment/S11.3.1_A4_T1.js new file mode 100644 index 000000000..88963fd86 --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A4_T1.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator x++ returns ToNumber(x) +es5id: 11.3.1_A4_T1 +description: Type(x) is boolean primitive or Boolean object +---*/ + +//CHECK#1 +var x = false; +var y = x++; +if (y !== 0) { + $ERROR('#1: var x = false; var y = x++; y === 0. Actual: ' + (y)); +} + +//CHECK#2 +var x = new Boolean(true); +var y = x++; +if (y !== 1) { + $ERROR('#2: var x = new Boolean(true); var y = x++; y === 1. Actual: ' + (y)); +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A4_T2.js b/test/language/expressions/postfix-increment/S11.3.1_A4_T2.js new file mode 100644 index 000000000..7bcd42af3 --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A4_T2.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator x++ returns ToNumber(x) +es5id: 11.3.1_A4_T2 +description: Type(x) is number primitive or Number object +---*/ + +//CHECK#1 +var x = -0.1; +var y = x++; +if (y !== -0.1) { + $ERROR('#1: var x = -0.1; var y = x++; y === -0.1. Actual: ' + (y)); +} + +//CHECK#2 +var x = new Number(1.1); +var y = x++; +if (y !== 1.1) { + $ERROR('#2: var x = new Number(1.1); var y = x++; y === 1.1. Actual: ' + (y)); +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A4_T3.js b/test/language/expressions/postfix-increment/S11.3.1_A4_T3.js new file mode 100644 index 000000000..ebab847da --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A4_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 x++ returns ToNumber(x) +es5id: 11.3.1_A4_T3 +description: Type(x) is string primitive or String object +---*/ + +//CHECK#1 +var x = "1"; +var y = x++; +if (y !== 1) { + $ERROR('#1: var x = "1"; var y = x++; y === 1. Actual: ' + (y)); +} + +//CHECK#2 +var x = "x"; +var y = x++; +if (isNaN(y) !== true) { + $ERROR('#2: var x = "x"; var y = x++; y === Not-a-Number. Actual: ' + (y)); +} + +//CHECK#3 +var x = new String("-1"); +var y = x++; +if (y !== -1) { + $ERROR('#3: var x = new String("-1"); var y = x++; y === -1. Actual: ' + (y)); +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A4_T4.js b/test/language/expressions/postfix-increment/S11.3.1_A4_T4.js new file mode 100644 index 000000000..c23fc07fe --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A4_T4.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator x++ returns ToNumber(x) +es5id: 11.3.1_A4_T4 +description: Type(x) is undefined or null +---*/ + +//CHECK#1 +var x; +var y = x++; +if (isNaN(y) !== true) { + $ERROR('#1: var x; var y = x++; y === Not-a-Number. Actual: ' + (y)); +} + +//CHECK#2 +var x = null; +var y = x++; +if (y !== 0) { + $ERROR('#2: var x = null; var y = x++; y === 0. Actual: ' + (y)); +} diff --git a/test/language/expressions/postfix-increment/S11.3.1_A4_T5.js b/test/language/expressions/postfix-increment/S11.3.1_A4_T5.js new file mode 100644 index 000000000..eea4a2a0a --- /dev/null +++ b/test/language/expressions/postfix-increment/S11.3.1_A4_T5.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Operator x++ returns ToNumber(x) +es5id: 11.3.1_A4_T5 +description: Type(x) is Object object or Function object +---*/ + +//CHECK#1 +var x = {}; +var y = x++; +if (isNaN(y) !== true) { + $ERROR('#1: var x = {}; var y = x++; y === Not-a-Number. Actual: ' + (y)); +} + +//CHECK#2 +var x = function(){return 1}; +var y = x++; +if (isNaN(y) !== true) { + $ERROR('#2: var x = function(){return 1}; var y = x++; y === Not-a-Number. Actual: ' + (y)); +} |