aboutsummaryrefslogtreecommitdiffstats
path: root/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator
diff options
context:
space:
mode:
Diffstat (limited to 'external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator')
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A1.js59
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.1_T1.js42
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.1_T2.js20
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.1_T3.js21
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.2_T1.js70
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.3_T1.js25
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.4_T1.js22
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.4_T2.js25
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.4_T3.js26
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T1.1.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T1.2.js30
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T1.3.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.1.js49
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.2.js59
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.3.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.4.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.5.js49
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.6.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.7.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.8.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.9.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.2_T1.1.js39
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.2_T1.2.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.1.js50
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.10.js41
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.11.js52
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.12_T1.js44
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.12_T2.js44
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.2.js50
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.3.js46
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.4.js30
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.5.js40
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.6.js40
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.7.js40
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.8.js40
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.9.js51
36 files changed, 1365 insertions, 0 deletions
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A1.js
new file mode 100644
index 000000000..d440e0935
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A1.js
@@ -0,0 +1,59 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A1;
+* @section: 11.8.3, 7.2, 7.3;
+* @assertion: White Space and Line Terminator between RelationalExpression and "<=" or between "<=" and ShiftExpression are allowed;
+* @description: Checking by using eval;
+*/
+
+//CHECK#1
+if (eval("1\u0009<=\u00091") !== true) {
+ $ERROR('#1: (1\\u0009<=\\u00091) === true');
+}
+
+//CHECK#2
+if (eval("1\u000B<=\u000B1") !== true) {
+ $ERROR('#2: (1\\u000B<=\\u000B1) === true');
+}
+
+//CHECK#3
+if (eval("1\u000C<=\u000C1") !== true) {
+ $ERROR('#3: (1\\u000C<=\\u000C1) === true');
+}
+
+//CHECK#4
+if (eval("1\u0020<=\u00201") !== true) {
+ $ERROR('#4: (1\\u0020<=\\u00201) === true');
+}
+
+//CHECK#5
+if (eval("1\u00A0<=\u00A01") !== true) {
+ $ERROR('#5: (1\\u00A0<=\\u00A01) === true');
+}
+
+//CHECK#6
+if (eval("1\u000A<=\u000A1") !== true) {
+ $ERROR('#6: (1\\u000A<=\\u000A1) === true');
+}
+
+//CHECK#7
+if (eval("1\u000D<=\u000D1") !== true) {
+ $ERROR('#7: (1\\u000D<=\\u000D1) === true');
+}
+
+//CHECK#8
+if (eval("1\u2028<=\u20281") !== true) {
+ $ERROR('#8: (1\\u2028<=\\u20281) === true');
+}
+
+//CHECK#9
+if (eval("1\u2029<=\u20291") !== true) {
+ $ERROR('#9: (1\\u2029<=\\u20291) === true');
+}
+
+//CHECK#10
+if (eval("1\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029>\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u20290") !== true) {
+ $ERROR('#10: (1\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029>\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u20290) === true');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.1_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.1_T1.js
new file mode 100644
index 000000000..c80563b2c
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_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.
+
+/**
+* @name: S11.8.3_A2.1_T1;
+* @section: 11.8.3, 11.8.5;
+* @assertion: Operator x <= y uses GetValue;
+* @description: Either Type is not Reference or GetBase is not null;
+*/
+
+//CHECK#1
+if (1 <= 1 !== true) {
+ $ERROR('#1: 1 <= 1 === true');
+}
+
+//CHECK#2
+var x = 1;
+if (x <= 1 !== true) {
+ $ERROR('#2: var x = 1; x <= 1 === true');
+}
+
+//CHECK#3
+var y = 1;
+if (1 <= y !== true) {
+ $ERROR('#3: var y = 1; 1 <= y === true');
+}
+
+//CHECK#4
+var x = 1;
+var y = 1;
+if (x <= y !== true) {
+ $ERROR('#4: var x = 1; var y = 1; x <= y === true');
+}
+
+//CHECK#5
+var objectx = new Object();
+var objecty = new Object();
+objectx.prop = 1;
+objecty.prop = 1;
+if (objectx.prop <= objecty.prop !== true) {
+ $ERROR('#5: var objectx = new Object(); var objecty = new Object(); objectx.prop = 1; objecty.prop = 1; objectx.prop <= objecty.prop === true');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.1_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.1_T2.js
new file mode 100644
index 000000000..b7bb57e89
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.1_T2.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.
+
+/**
+ * @name: S11.8.3_A2.1_T2;
+ * @section: 11.8.3, 11.8.5;
+ * @assertion: Operator x <= y uses GetValue;
+ * @description: If GetBase(x) is null, throw ReferenceError;
+*/
+
+//CHECK#1
+try {
+ x <= 1;
+ $ERROR('#1.1: x <= 1 throw ReferenceError. Actual: ' + (x <= 1));
+}
+catch (e) {
+ if ((e instanceof ReferenceError) !== true) {
+ $ERROR('#1.2: x <= 1 throw ReferenceError. Actual: ' + (e));
+ }
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.1_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.1_T3.js
new file mode 100644
index 000000000..fbb266ec1
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.1_T3.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.
+
+/**
+ * @name: S11.8.3_A2.1_T3;
+ * @section: 11.8.3, 11.8.5;
+ * @assertion: Operator x <= y uses GetValue;
+ * @description: If GetBase(y) is null, throw ReferenceError;
+*/
+
+//CHECK#1
+try {
+ 1 <= y;
+ $ERROR('#1.1: 1 <= y throw ReferenceError. Actual: ' + (1 <= y));
+}
+catch (e) {
+ if ((e instanceof ReferenceError) !== true) {
+ $ERROR('#1.2: 1 <= y throw ReferenceError. Actual: ' + (e));
+ }
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.2_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.2_T1.js
new file mode 100644
index 000000000..dc85f4908
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.2_T1.js
@@ -0,0 +1,70 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.8.3_A2.2_T1;
+ * @section: 11.8.3, 8.6.2.6;
+ * @assertion: Operator x <= y uses [[Default Value]];
+ * @description: If Type(value) is Object, evaluate ToPrimitive(value, Number);
+ */
+
+//CHECK#1
+if ({valueOf: function() {return 0}} <= 1 !== true) {
+ $ERROR('#1: {valueOf: function() {return 1}} <= 1 === true. Actual: ' + ({valueOf: function() {return 1}} <= 1));
+}
+
+//CHECK#2
+if ({valueOf: function() {return 0}, toString: function() {return 2}} <= 1 !== true) {
+ $ERROR('#2: {valueOf: function() {return 1}, toString: function() {return 0}} <= 1 === true. Actual: ' + ({valueOf: function() {return 1}, toString: function() {return 0}} <= 1));
+}
+
+//CHECK#3
+if ({valueOf: function() {return 0}, toString: function() {return {}}} <= 1 !== true) {
+ $ERROR('#3: {valueOf: function() {return 1}, toString: function() {return {}}} <= 1 === true. Actual: ' + ({valueOf: function() {return 1}, toString: function() {return {}}} <= 1));
+}
+
+//CHECK#4
+try {
+ if ({valueOf: function() {return 0}, toString: function() {throw "error"}} <= 1 !== true) {
+ $ERROR('#4.1: {valueOf: function() {return 1}, toString: function() {throw "error"}} <= 1 === true. Actual: ' + ({valueOf: function() {return 1}, toString: function() {throw "error"}} <= 1));
+ }
+}
+catch (e) {
+ if (e === "error") {
+ $ERROR('#4.2: {valueOf: function() {return 0}, toString: function() {throw "error"}} <= 1 not throw "error"');
+ } else {
+ $ERROR('#4.3: {valueOf: function() {return 0}, toString: function() {throw "error"}} <= 1 not throw Error. Actual: ' + (e));
+ }
+}
+
+//CHECK#5
+if (1 <= {toString: function() {return 2}} !== true) {
+ $ERROR('#5: 1 <= {toString: function() {return 2}} === true. Actual: ' + (1 <= {toString: function() {return 2}}));
+}
+
+//CHECK#6
+if (1 <= {valueOf: function() {return {}}, toString: function() {return 2}} !== true) {
+ $ERROR('#6: 1 <= {valueOf: function() {return {}}, toString: function() {return 2}} === true. Actual: ' + (1 <= {valueOf: function() {return {}}, toString: function() {return 2}}));
+}
+
+//CHECK#7
+try {
+ 1 <= {valueOf: function() {throw "error"}, toString: function() {return 2}};
+ $ERROR('#7.1: 1 <= {valueOf: function() {throw "error"}, toString: function() {return 2}} throw "error". Actual: ' + (1 <= {valueOf: function() {throw "error"}, toString: function() {return 2}}));
+}
+catch (e) {
+ if (e !== "error") {
+ $ERROR('#7.2: 1 <= {valueOf: function() {throw "error"}, toString: function() {return 2}} throw "error". Actual: ' + (e));
+ }
+}
+
+//CHECK#8
+try {
+ 1 <= {valueOf: function() {return {}}, toString: function() {return {}}};
+ $ERROR('#8.1: 1 <= {valueOf: function() {return {}}, toString: function() {return {}}} throw TypeError. Actual: ' + (1 <= {valueOf: function() {return {}}, toString: function() {return {}}}));
+}
+catch (e) {
+ if ((e instanceof TypeError) !== true) {
+ $ERROR('#8.2: 1 <= {valueOf: function() {return {}}, toString: function() {return {}}} throw TypeError. Actual: ' + (e));
+ }
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.3_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.3_T1.js
new file mode 100644
index 000000000..9658773e3
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.3_T1.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.
+
+/**
+ * @name: S11.8.3_A2.3_T1;
+ * @section: 11.8.3;
+ * @assertion: ToNumber(second expression) is called first, and then ToNumber(first expression);
+ * @description: Checking with "throw";
+*/
+
+//CHECK#1
+var x = { valueOf: function () { throw "x"; } };
+var y = { valueOf: function () { throw "y"; } };
+try {
+ x <= y;
+ $ERROR('#1.1: var x = { valueOf: function () { throw "x"; } }; var y = { valueOf: function () { throw "y"; } }; x <= y throw "y". Actual: ' + (x <= y));
+} catch (e) {
+ if (e === "x") {
+ $ERROR('#1.2: ToNumber(second expression) is called first, and then ToNumber(first expression)');
+ } else {
+ if (e !== "y") {
+ $ERROR('#1.3: var x = { valueOf: function () { throw "x"; } }; var y = { valueOf: function () { throw "y"; } }; x <= y throw "y". Actual: ' + (e));
+ }
+ }
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.4_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.4_T1.js
new file mode 100644
index 000000000..4d767dc02
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.4_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.
+
+/**
+ * @name: S11.8.3_A2.4_T1;
+ * @section: 11.8.3;
+ * @assertion: First expression is evaluated first, and then second expression;
+ * @description: Checking with "=";
+*/
+
+//CHECK#1
+var x = 0;
+if ((x = 1) <= x !== true) {
+ $ERROR('#1: var x = 0; (x = 1) <= x === true');
+}
+
+//CHECK#2
+var x = 1;
+if (x <= (x = 0) !== false) {
+ $ERROR('#2: var x = 1; x <= (x = 0) === false');
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.4_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.4_T2.js
new file mode 100644
index 000000000..7c1890301
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.4_T2.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.
+
+/**
+ * @name: S11.8.3_A2.4_T2;
+ * @section: 11.8.3;
+ * @assertion: First expression is evaluated first, and then second expression;
+ * @description: Checking with "throw";
+*/
+
+//CHECK#1
+var x = function () { throw "x"; };
+var y = function () { throw "y"; };
+try {
+ x() <= y();
+ $ERROR('#1.1: var x = function () { throw "x"; }; var y = function () { throw "y"; }; x() <= y() throw "x". Actual: ' + (x() <= y()));
+} catch (e) {
+ if (e === "y") {
+ $ERROR('#1.2: First expression is evaluated first, and then second expression');
+ } else {
+ if (e !== "x") {
+ $ERROR('#1.3: var x = function () { throw "x"; }; var y = function () { throw "y"; }; x() <= y() throw "x". Actual: ' + (e));
+ }
+ }
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.4_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.4_T3.js
new file mode 100644
index 000000000..ede9323aa
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A2.4_T3.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.
+
+/**
+ * @name: S11.8.3_A2.4_T3;
+ * @section: 11.8.3;
+ * @assertion: First expression is evaluated first, and then second expression;
+ * @description: Checking with undeclarated variables;
+*/
+
+//CHECK#1
+try {
+ x <= (x = 1);
+ $ERROR('#1.1: x <= (x = 1) throw ReferenceError. Actual: ' + (x <= (x = 1)));
+}
+catch (e) {
+ if ((e instanceof ReferenceError) !== true) {
+ $ERROR('#1.2: x <= (x = 1) throw ReferenceError. Actual: ' + (e));
+ }
+}
+
+//CHECK#2
+if ((y = 1) <= y !== true) {
+ $ERROR('#2: (y = 1) <= y === true');
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T1.1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T1.1.js
new file mode 100644
index 000000000..416964ccf
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T1.1.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.
+
+/**
+ * @name: S11.8.3_A3.1_T1.1;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String;
+ * @description: Type(Primitive(x)) and Type(Primitive(y)) vary between primitive boolean and Boolean object;
+ */
+
+//CHECK#1
+if (true <= true !== true) {
+ $ERROR('#1: true <= true === true');
+}
+
+//CHECK#2
+if (new Boolean(true) <= true !== true) {
+ $ERROR('#2: new Boolean(true) <= true === true');
+}
+
+//CHECK#3
+if (true <= new Boolean(true) !== true) {
+ $ERROR('#3: true <= new Boolean(true) === true');
+}
+
+//CHECK#4
+if (new Boolean(true) <= new Boolean(true) !== true) {
+ $ERROR('#4: new Boolean(true) <= new Boolean(true) === true');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T1.2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T1.2.js
new file mode 100644
index 000000000..0df36ffa9
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T1.2.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.
+
+/**
+ * @name: S11.8.3_A3.1_T1.2;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String;
+ * @description: Type(Primitive(x)) and Type(Primitive(y)) vary between primitive number and Number object;
+*/
+
+//CHECK#1
+if (1 <= 1 !== true) {
+ $ERROR('#1: 1 <= 1 === true');
+}
+
+//CHECK#2
+if (new Number(1) <= 1 !== true) {
+ $ERROR('#2: new Number(1) <= 1 === true');
+}
+
+//CHECK#3
+if (1 <= new Number(1) !== true) {
+ $ERROR('#3: 1 <= new Number(1) === true');
+}
+
+//CHECK#4
+if (new Number(1) <= new Number(1) !== true) {
+ $ERROR('#4: new Number(1) <= new Number(1) === true');
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T1.3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T1.3.js
new file mode 100644
index 000000000..01eed6a06
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T1.3.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.
+
+/**
+ * @name: S11.8.3_A3.1_T1.3;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String;
+ * @description: Type(Primitive(x)) and Type(Primitive(y)) vary between Null and Undefined;
+ */
+
+//CHECK#1
+if (null <= undefined !== false) {
+ $ERROR('#1: null <= undefined === false');
+}
+
+//CHECK#2
+if (undefined <= null !== false) {
+ $ERROR('#2: undefined <= null === false');
+}
+
+//CHECK#3
+if (undefined <= undefined !== false) {
+ $ERROR('#3: undefined <= undefined === false');
+}
+
+//CHECK#4
+if (null <= null !== true) {
+ $ERROR('#4: null <= null === true');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.1.js
new file mode 100644
index 000000000..00cfb73a9
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.1.js
@@ -0,0 +1,49 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.8.3_A3.1_T2.1;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String;
+ * @description: Type(Primitive(x)) is different from Type(Primitive(y)) and both types vary between Number (primitive or object) and Boolean (primitive and object);
+ */
+
+//CHECK#1
+if (true <= 1 !== true) {
+ $ERROR('#1: true <= 1 === true');
+}
+
+//CHECK#2
+if (1 <= true !== true) {
+ $ERROR('#2: 1 <= true === true');
+}
+
+//CHECK#3
+if (new Boolean(true) <= 1 !== true) {
+ $ERROR('#3: new Boolean(true) <= 1 === true');
+}
+
+//CHECK#4
+if (1 <= new Boolean(true) !== true) {
+ $ERROR('#4: 1 <= new Boolean(true) === true');
+}
+
+//CHECK#5
+if (true <= new Number(1) !== true) {
+ $ERROR('#5: true <= new Number(1) === true');
+}
+
+//CHECK#6
+if (new Number(1) <= true !== true) {
+ $ERROR('#6: new Number(1) <= true === true');
+}
+
+//CHECK#7
+if (new Boolean(true) <= new Number(1) !== true) {
+ $ERROR('#7: new Boolean(true) <= new Number(1) === true');
+}
+
+//CHECK#8
+if (new Number(1) <= new Boolean(true) !== true) {
+ $ERROR('#8: new Number(1) <= new Boolean(true) === true');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.2.js
new file mode 100644
index 000000000..c2c55fe99
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.2.js
@@ -0,0 +1,59 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.8.3_A3.1_T2.2;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String;
+ * @description: Type(Primitive(x)) is different from Type(Primitive(y)) and both types vary between Number (primitive or object) and String (primitive and object);
+*/
+
+//CHECK#1
+if ("1" <= 1 !== true) {
+ $ERROR('#1: "1" <= 1 === true');
+}
+
+//CHECK#2
+if (1 <= "1" !== true) {
+ $ERROR('#2: 1 <= "1" === true');
+}
+
+//CHECK#3
+if (new String("1") <= 1 !== true) {
+ $ERROR('#3: new String("1") <= 1 === true');
+}
+
+//CHECK#4
+if (1 <= new String("1") !== true) {
+ $ERROR('#4: 1 <= new String("1") === true');
+}
+
+//CHECK#5
+if ("1" <= new Number(1) !== true) {
+ $ERROR('#5: "1" <= new Number(1) === true');
+}
+
+//CHECK#6
+if (new Number(1) <= "1" !== true) {
+ $ERROR('#6: new Number(1) <= "1" === true');
+}
+
+//CHECK#7
+if (new String("1") <= new Number(1) !== true) {
+ $ERROR('#7: new String("1") <= new Number(1) === true');
+}
+
+//CHECK#8
+if (new Number(1) <= new String("1") !== true) {
+ $ERROR('#8: new Number(1) <= new String("1") === true');
+}
+
+//CHECK#9
+if ("x" <= 1 !== false) {
+ $ERROR('#9: "x" <= 1 === false');
+}
+
+//CHECK#10
+if (1 <= "x" !== false) {
+ $ERROR('#10: 1 <= "x" === false');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.3.js
new file mode 100644
index 000000000..4cd0b2a2b
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.3.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.
+
+/**
+ * @name: S11.8.3_A3.1_T2.3;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String;
+ * @description: Type(Primitive(x)) is different from Type(Primitive(y)) and both types vary between Number (primitive or object) and Null;
+ */
+
+//CHECK#1
+if (1 <= null !== false) {
+ $ERROR('#1: 1 <= null === false');
+}
+
+//CHECK#2
+if (null <= 1 !== true) {
+ $ERROR('#2: null <= 1 === true');
+}
+
+//CHECK#3
+if (new Number(1) <= null !== false) {
+ $ERROR('#3: new Number(1) <= null === false');
+}
+
+//CHECK#4
+if (null <= new Number(1) !== true) {
+ $ERROR('#4: null <= new Number(1) === true');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.4.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.4.js
new file mode 100644
index 000000000..bbdc03588
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.4.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.
+
+/**
+ * @name: S11.8.3_A3.1_T2.4;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String;
+ * @description: Type(Primitive(x)) is different from Type(Primitive(y)) and both types vary between Number (primitive or object) and Undefined;
+ */
+
+//CHECK#1
+if (1 <= undefined !== false) {
+ $ERROR('#1: 1 <= undefined === false');
+}
+
+//CHECK#2
+if (undefined <= 1 !== false) {
+ $ERROR('#2: undefined <= 1 === false');
+}
+
+//CHECK#3
+if (new Number(1) <= undefined !== false) {
+ $ERROR('#3: new Number(1) <= undefined === false');
+}
+
+//CHECK#4
+if (undefined <= new Number(1) !== false) {
+ $ERROR('#4: undefined <= new Number(1) === false');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.5.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.5.js
new file mode 100644
index 000000000..1666a6742
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.5.js
@@ -0,0 +1,49 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.8.3_A3.1_T2.5;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String;
+ * @description: Type(Primitive(x)) is different from Type(Primitive(y)) and both types vary between String (primitive or object) and Boolean (primitive and object);
+*/
+
+//CHECK#1
+if (true <= "1" !== true) {
+ $ERROR('#1: true <= "1" === true');
+}
+
+//CHECK#2
+if ("1" <= true !== true) {
+ $ERROR('#2: "1" <= true === true');
+}
+
+//CHECK#3
+if (new Boolean(true) <= "1" !== true) {
+ $ERROR('#3: new Boolean(true) <= "1" === true');
+}
+
+//CHECK#4
+if ("1" <= new Boolean(true) !== true) {
+ $ERROR('#4: "1" <= new Boolean(true) === true');
+}
+
+//CHECK#5
+if (true <= new String("1") !== true) {
+ $ERROR('#5: true <= new String("1") === true');
+}
+
+//CHECK#6
+if (new String("1") <= true !== true) {
+ $ERROR('#6: new String("1") <= true === true');
+}
+
+//CHECK#7
+if (new Boolean(true) <= new String("1") !== true) {
+ $ERROR('#7: new Boolean(true) <= new String("1") === true');
+}
+
+//CHECK#8
+if (new String("1") <= new Boolean(true) !== true) {
+ $ERROR('#8: new String("1") <= new Boolean(true) === true');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.6.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.6.js
new file mode 100644
index 000000000..d28c3ba53
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.6.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.
+
+/**
+ * @name: S11.8.3_A3.1_T2.6;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String;
+ * @description: Type(Primitive(x)) is different from Type(Primitive(y)) and both types vary between String (primitive or object) and Undefined;
+ */
+
+//CHECK#1
+if ("1" <= undefined !== false) {
+ $ERROR('#1: "1" <= undefined === false');
+}
+
+//CHECK#2
+if (undefined <= "1" !== false) {
+ $ERROR('#2: undefined <= "1" === false');
+}
+
+//CHECK#3
+if (new String("1") <= undefined !== false) {
+ $ERROR('#3: new String("1") <= undefined === false');
+}
+
+//CHECK#4
+if (undefined <= new String("1") !== false) {
+ $ERROR('#4: undefined <= new String("1") === false');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.7.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.7.js
new file mode 100644
index 000000000..e6b96451e
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.7.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.
+
+/**
+ * @name: S11.8.3_A3.1_T2.7;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String;
+ * @description: Type(Primitive(x)) is different from Type(Primitive(y)) and both types vary between String (primitive or object) and Null;
+ */
+
+//CHECK#1
+if ("1" <= null !== false) {
+ $ERROR('#1: "1" <= null === false');
+}
+
+//CHECK#2
+if (null <= "1" !== true) {
+ $ERROR('#2: null <= "1" === true');
+}
+
+//CHECK#3
+if (new String("1") <= null !== false) {
+ $ERROR('#3: new String("1") <= null === false');
+}
+
+//CHECK#4
+if (null <= new String("1") !== true) {
+ $ERROR('#4: null <= new String("1") === true');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.8.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.8.js
new file mode 100644
index 000000000..bdbc28959
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.8.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.
+
+/**
+ * @name: S11.8.3_A3.1_T2.8;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String;
+ * @description: Type(Primitive(x)) is different from Type(Primitive(y)) and both types vary between Boolean (primitive or object) and Undefined;
+ */
+
+//CHECK#1
+if (true <= undefined !== false) {
+ $ERROR('#1: true <= undefined === false');
+}
+
+//CHECK#2
+if (undefined <= true !== false) {
+ $ERROR('#2: undefined <= true === false');
+}
+
+//CHECK#3
+if (new Boolean(true) <= undefined !== false) {
+ $ERROR('#3: new Boolean(true) <= undefined === false');
+}
+
+//CHECK#4
+if (undefined <= new Boolean(true) !== false) {
+ $ERROR('#4: undefined <= new Boolean(true) === false');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.9.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.9.js
new file mode 100644
index 000000000..8e54c2931
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.1_T2.9.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.
+
+/**
+ * @name: S11.8.3_A3.1_T2.9;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String;
+ * @description: Type(Primitive(x)) is different from Type(Primitive(y)) and both types vary between Boolean (primitive or object) and Null;
+ */
+
+//CHECK#1
+if (true <= null !== false) {
+ $ERROR('#1: true <= null === false');
+}
+
+//CHECK#2
+if (null <= true !== true) {
+ $ERROR('#2: null <= true === true');
+}
+
+//CHECK#3
+if (new Boolean(true) <= null !== false) {
+ $ERROR('#3: new Boolean(true) <= null === false');
+}
+
+//CHECK#4
+if (null <= new Boolean(true) !== true) {
+ $ERROR('#4: null <= new Boolean(true) === true');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.2_T1.1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.2_T1.1.js
new file mode 100644
index 000000000..5125d8d2c
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.2_T1.1.js
@@ -0,0 +1,39 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.8.3_A3.2_T1.1;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToString(x) <= ToString(y), if Type(Primitive(x)) is String and Type(Primitive(y)) is String;
+ * @description: Type(Primitive(x)) and Type(Primitive(y)) vary between primitive string and String object;
+*/
+
+//CHECK#1
+if ("1" <= "1" !== true) {
+ $ERROR('#1: "1" <= "1" === true');
+}
+
+//CHECK#2
+if (new String("1") <= "1" !== true) {
+ $ERROR('#2: new String("1") <= "1" === true');
+}
+
+//CHECK#3
+if ("1" <= new String("1") !== true) {
+ $ERROR('#3: "1" <= new String("1") === true');
+}
+
+//CHECK#4
+if (new String("1") <= new String("1") !== true) {
+ $ERROR('#4: new String("1") <= new String("1") === true');
+}
+
+//CHECK#5
+if ("x" <= "1" !== false) {
+ $ERROR('#5: "x" <= "1" === false');
+}
+
+//CHECK#6
+if ("1" <= "x" !== true) {
+ $ERROR('#6: "1" <= "x" === true');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.2_T1.2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.2_T1.2.js
new file mode 100644
index 000000000..e1691a13b
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A3.2_T1.2.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.
+
+/**
+ * @name: S11.8.3_A3.2_T1.2;
+ * @section: 11.8.3;
+ * @assertion: Operator x <= y returns ToString(x) <= ToString(y), if Type(Primitive(x)) is String and Type(Primitive(y)) is String;
+ * @description: Type(Primitive(x)) and Type(Primitive(y)) vary between Object object and Function object;
+ */
+
+//CHECK#1
+if (({} <= function(){return 1}) !== ({}.toString() <= function(){return 1}.toString())) {
+ $ERROR('#1: ({} <= function(){return 1}) === ({}.toString() <= function(){return 1}.toString())');
+}
+
+//CHECK#2
+if ((function(){return 1} <= {}) !== (function(){return 1}.toString() <= {}.toString())) {
+ $ERROR('#2: (function(){return 1} <= {}) === (function(){return 1}.toString() <= {}.toString())');
+}
+
+//CHECK#3
+if ((function(){return 1} <= function(){return 1}) !== (function(){return 1}.toString() <= function(){return 1}.toString())) {
+ $ERROR('#3: (function(){return 1} <= function(){return 1}) === (function(){return 1}.toString() <= function(){return 1}.toString())');
+}
+
+//CHECK#4
+if (({} <= {}) !== ({}.toString() <= {}.toString())) {
+ $ERROR('#4: ({} <= {}) === ({}.toString() <= {}.toString())');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.1.js
new file mode 100644
index 000000000..4cffbd13b
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.1.js
@@ -0,0 +1,50 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A4.1;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If x is NaN, return false (if result in 11.8.5 is undefined, return false);
+* @description: y is number primitive;
+*/
+
+//CHECK#1
+if ((Number.NaN <= 0) !== false) {
+ $ERROR('#1: (NaN <= 0) === false');
+}
+
+//CHECK#2
+if ((Number.NaN <= 1.1) !== false) {
+ $ERROR('#2: (NaN <= 1.1) === false');
+}
+
+//CHECK#3
+if ((Number.NaN <= -1.1) !== false) {
+ $ERROR('#3: (NaN <= -1.1) === false');
+}
+
+//CHECK#4
+if ((Number.NaN <= Number.NaN) !== false) {
+ $ERROR('#4: (NaN <= NaN) === false');
+}
+
+//CHECK#5
+if ((Number.NaN <= Number.POSITIVE_INFINITY) !== false) {
+ $ERROR('#5: (NaN <= +Infinity) === false');
+}
+
+//CHECK#6
+if ((Number.NaN <= Number.NEGATIVE_INFINITY) !== false) {
+ $ERROR('#6: (NaN <= -Infinity) === false');
+}
+
+//CHECK#7
+if ((Number.NaN <= Number.MAX_VALUE) !== false) {
+ $ERROR('#7: (NaN <= Number.MAX_VALUE) === false');
+}
+
+//CHECK#8
+if ((Number.NaN <= Number.MIN_VALUE) !== false) {
+ $ERROR('#8: (NaN <= Number.MIN_VALUE) === false');
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.10.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.10.js
new file mode 100644
index 000000000..c00afb1fe
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.10.js
@@ -0,0 +1,41 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A4.10;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If y is a prefix of x and x !== y, return false;
+* @description: x and y are string primitives;
+*/
+
+//CHECK#1
+if (("x " <= "x") !== false) {
+ $ERROR('#1: ("x " <= "x") === false');
+}
+
+//CHECK#2
+if (("x" <= "") !== false) {
+ $ERROR('#2: ("x" <= "") === false');
+}
+
+//CHECK#3
+if (("abcd" <= "ab") !== false) {
+ $ERROR('#3: ("abcd" <= ab") === false');
+}
+
+//CHECK#4
+if (("abc\u0064" <= "abcd") !== true) {
+ $ERROR('#4: ("abc\\u0064" <= abcd") === true');
+}
+
+//CHECK#5
+if (("x" + "y" <= "x") !== false) {
+ $ERROR('#5: ("x" + "y" <= "x") === false');
+}
+
+//CHECK#6
+var x = "x";
+if ((x + 'y' <= x) !== false) {
+ $ERROR('#6: var x = "x"; (x + "y" <= x) === false');
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.11.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.11.js
new file mode 100644
index 000000000..0931d3963
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.11.js
@@ -0,0 +1,52 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A4.11;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If x is a prefix of y, return true;
+* @description: x and y are string primitives;
+*/
+
+//CHECK#1
+if (("x" <= "x") !== true) {
+ $ERROR('#1: ("x" <= "x") === true');
+}
+
+//CHECK#2
+if (("" <= "x") !== true) {
+ $ERROR('#2: ("" <= "x") === true');
+}
+
+//CHECK#3
+if (("ab" <= "abcd") !== true) {
+ $ERROR('#3: ("ab" <= abcd") === true');
+}
+
+//CHECK#4
+if (("abcd" <= "abc\u0064") !== true) {
+ $ERROR('#4: ("abcd" <= abc\\u0064") === true');
+}
+
+//CHECK#5
+if (("x" <= "x" + "y") !== true) {
+ $ERROR('#5: ("x" <= "x" + "y") === true');
+}
+
+//CHECK#6
+var x = "x";
+if ((x <= x + "y") !== true) {
+ $ERROR('#6: var x = "x"; (x <= x + "y") === true');
+}
+
+//CHECK#7
+if (("a\u0000" <= "a\u0000a") !== true) {
+ $ERROR('#7: ("a\\u0000" <= "a\\u0000a") === true');
+}
+
+//CHECK#8
+if (("x" <= " x") !== false) {
+ $ERROR('#8: ("x" <= " x") === false');
+}
+
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.12_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.12_T1.js
new file mode 100644
index 000000000..dbf3f6997
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.12_T1.js
@@ -0,0 +1,44 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A4.12_T1;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If neither x, nor y is a prefix of each other, returned result of strings comparison applies a simple lexicographic ordering to the sequences of code point value values;
+* @description: x and y are string primitives;
+*/
+
+//CHECK#1
+if (("xx" <= "xy") !== true) {
+ $ERROR('#1: ("xx" <= "xy") === true');
+}
+
+//CHECK#2
+if (("xy" <= "xx") !== false) {
+ $ERROR('#2: ("xy" <= "xx") === false');
+}
+
+//CHECK#3
+if (("x" <= "y") !== true) {
+ $ERROR('#3: ("x" <= y") === true');
+}
+
+//CHECK#4
+if (("aab" <= "aba") !== true) {
+ $ERROR('#4: ("aab" <= aba") === true');
+}
+
+//CHECK#5
+if (("\u0061\u0061\u0061\u0062" <= "\u0061\u0061\u0061\u0061") !== false) {
+ $ERROR('#5: ("\\u0061\\u0061\\u0061\\u0062" <= \\u0061\\u0061\\u0061\\u0061") === false');
+}
+
+//CHECK#6
+if (("a\u0000a" <= "a\u0000b") !== true) {
+ $ERROR('#6: ("a\\u0000a" <= "a\\u0000b") === true');
+}
+
+//CHECK#7
+if (("aB" <= "aa") !== true) {
+ $ERROR('#7: ("aB" <= aa") === true');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.12_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.12_T2.js
new file mode 100644
index 000000000..af86e980c
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.12_T2.js
@@ -0,0 +1,44 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A4.12_T2;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If neither x, nor y is a prefix of each other, returned result of strings comparison applies a simple lexicographic ordering to the sequences of code point value values;
+* @description: x and y are string primitives;
+*/
+
+//CHECK#1
+if (("0" <= "x") !== true) {
+ $ERROR('#1: ("0" <= "x") !== true');
+}
+
+//CHECK#2
+if (("-" <= "0") !== true) {
+ $ERROR('#2: ("-" <= "0") !== true');
+}
+
+//CHECK#3
+if (("." <= "0") !== true) {
+ $ERROR('#3: ("." <= "0") !== true');
+}
+
+//CHECK#4
+if (("+" <= "-") !== true) {
+ $ERROR('#4: ("+" <= "-") !== true');
+}
+
+//CHECK#5
+if (("-0" <= "-1") !== true) {
+ $ERROR('#5: ("-0" <= "-1") !== true');
+}
+
+//CHECK#6
+if (("+1" <= "-1") !== true) {
+ $ERROR('#6: ("+1" <= "-1") !== true');
+}
+
+//CHECK#7
+if (("1" <= "1e-10") !== true) {
+$ERROR('#7: ("1" <= "1e-10") !== true');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.2.js
new file mode 100644
index 000000000..c35d5a8cb
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.2.js
@@ -0,0 +1,50 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A4.2;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If y is NaN, return false (if result in 11.8.5 is undefined, return false);
+* @description: x is number primitive;
+*/
+
+//CHECK#1
+if ((0 <= Number.NaN) !== false) {
+ $ERROR('#1: (0 <= NaN) === false');
+}
+
+//CHECK#2
+if ((1.1 <= Number.NaN) !== false) {
+ $ERROR('#2: (1.1 <= NaN) === false');
+}
+
+//CHECK#3
+if ((-1.1 <= Number.NaN) !== false) {
+ $ERROR('#3: (-1.1 <= NaN) === false');
+}
+
+//CHECK#4
+if ((Number.NaN <= Number.NaN) !== false) {
+ $ERROR('#4: (NaN <= NaN) === false');
+}
+
+//CHECK#5
+if ((Number.POSITIVE_INFINITY <= Number.NaN) !== false) {
+ $ERROR('#5: (+Infinity <= NaN) === false');
+}
+
+//CHECK#6
+if ((Number.NEGATIVE_INFINITY <= Number.NaN) !== false) {
+ $ERROR('#6: (-Infinity <= NaN) === false');
+}
+
+//CHECK#7
+if ((Number.MAX_VALUE <= Number.NaN) !== false) {
+ $ERROR('#7: (Number.MAX_VALUE <= NaN) === false');
+}
+
+//CHECK#8
+if ((Number.MIN_VALUE <= Number.NaN) !== false) {
+ $ERROR('#8: (Number.MIN_VALUE <= NaN) === false');
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.3.js
new file mode 100644
index 000000000..178b67d18
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.3.js
@@ -0,0 +1,46 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A4.3;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If x and y are the same number value, return true;
+* @description: x and y are number primitives;
+*/
+
+//CHECK#1
+if ((1 <= 1) !== true) {
+ $ERROR('#1: (1 <= 1) === true');
+}
+
+//CHECK#2
+if ((1.1 <= 1.1) !== true) {
+ $ERROR('#2: (1.1 <= 1.1) === true');
+}
+
+//CHECK#3
+if ((-1.1 <= -1.1) !== true) {
+ $ERROR('#3: (-1.1 <= -1.1) === true');
+}
+
+//CHECK#4
+if ((Number.NEGATIVE_INFINITY <= Number.NEGATIVE_INFINITY) !== true) {
+ $ERROR('#4: (-Infinity <= -Infinity) === true');
+}
+
+//CHECK#5
+if ((Number.POSITIVE_INFINITY <= Number.POSITIVE_INFINITY) !== true) {
+ $ERROR('#5: (+Infinity <= +Infinity) === true');
+}
+
+//CHECK#6
+if ((Number.MAX_VALUE <= Number.MAX_VALUE) !== true) {
+ $ERROR('#6: (Number.MAX_VALUE <= Number.MAX_VALUE) === true');
+}
+
+//CHECK#7
+if ((Number.MIN_VALUE <= Number.MIN_VALUE) !== true) {
+ $ERROR('#7: (Number.MIN_VALUE <= Number.MIN_VALUE) === true');
+}
+
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.4.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.4.js
new file mode 100644
index 000000000..05a810ccd
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.4.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.
+
+/**
+* @name: S11.8.3_A4.4;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If either x or y is +0 and the other is -0, return true;
+* @description: Checking all combinations;
+*/
+
+//CHECK#1
+if ((0 <= 0) !== true) {
+ $ERROR('#1: (0 <= 0) === true');
+}
+
+//CHECK#2
+if ((-0 <= -0) !== true) {
+ $ERROR('#2: (-0 <= -0) === true');
+}
+
+//CHECK#3
+if ((+0 <= -0) !== true) {
+ $ERROR('#3: (+0 <= -0) === true');
+}
+
+//CHECK#4
+if ((-0 <= +0) !== true) {
+ $ERROR('#4: (-0 <= +0) === true');
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.5.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.5.js
new file mode 100644
index 000000000..edf1b850e
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.5.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A4.5;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If x is +Infinity and x !== y, return false;
+* @description: y is number primitive;
+*/
+
+//CHECK#1
+if ((Number.POSITIVE_INFINITY <= 0) !== false) {
+ $ERROR('#1: (+Infinity <= 0) === false');
+}
+
+//CHECK#2
+if ((Number.POSITIVE_INFINITY <= 1.1) !== false) {
+ $ERROR('#2: (+Infinity <= 1.1) === false');
+}
+
+//CHECK#3
+if ((Number.POSITIVE_INFINITY <= -1.1) !== false) {
+ $ERROR('#3: (+Infinity <= -1.1) === false');
+}
+
+//CHECK#4
+if ((Number.POSITIVE_INFINITY <= Number.NEGATIVE_INFINITY) !== false) {
+ $ERROR('#4: (+Infinity <= -Infinity) === false');
+}
+
+//CHECK#5
+if ((Number.POSITIVE_INFINITY <= Number.MAX_VALUE) !== false) {
+ $ERROR('#5: (+Infinity <= Number.MAX_VALUE) === false');
+}
+
+//CHECK#6
+if ((Number.POSITIVE_INFINITY <= Number.MIN_VALUE) !== false) {
+ $ERROR('#6: (+Infinity <= Number.MIN_VALUE) === false');
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.6.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.6.js
new file mode 100644
index 000000000..bfa210542
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.6.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A4.6;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If y is +Infinity and x !== y, return true;
+* @description: x is number primitive;
+*/
+
+//CHECK#1
+if ((0 <= Number.POSITIVE_INFINITY) !== true) {
+ $ERROR('#1: (0 <= +Infinity) === true');
+}
+
+//CHECK#2
+if ((1.1 <= Number.POSITIVE_INFINITY) !== true) {
+ $ERROR('#2: (1.1 <= +Infinity) === true');
+}
+
+//CHECK#3
+if ((-1.1 <= Number.POSITIVE_INFINITY) !== true) {
+ $ERROR('#3: (-1.1 <= +Infinity) === true');
+}
+
+//CHECK#4
+if ((Number.NEGATIVE_INFINITY <= Number.POSITIVE_INFINITY) !== true) {
+ $ERROR('#4: (-Infinity <= +Infinity) === true');
+}
+
+//CHECK#5
+if ((Number.MAX_VALUE <= Number.POSITIVE_INFINITY) !== true) {
+ $ERROR('#5: (Number.MAX_VALUE <= +Infinity) === true');
+}
+
+//CHECK#6
+if ((Number.MIN_VALUE <= Number.POSITIVE_INFINITY) !== true) {
+ $ERROR('#6: (Number.MIN_VALUE <= +Infinity) === true');
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.7.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.7.js
new file mode 100644
index 000000000..dd05f8dd2
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.7.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A4.7;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If x is -Infinity, return true;
+* @description: y is number primitive;
+*/
+
+//CHECK#1
+if ((Number.NEGATIVE_INFINITY <= 0) !== true) {
+ $ERROR('#1: (-Infinity <= 0) === true');
+}
+
+//CHECK#2
+if ((Number.NEGATIVE_INFINITY <= 1.1) !== true) {
+ $ERROR('#2: (-Infinity <= 1.1) === true');
+}
+
+//CHECK#3
+if ((Number.NEGATIVE_INFINITY <= -1.1) !== true) {
+ $ERROR('#3: (-Infinity <= -1.1) === true');
+}
+
+//CHECK#4
+if ((Number.NEGATIVE_INFINITY <= Number.POSITIVE_INFINITY) !== true) {
+ $ERROR('#4: (-Infinity <= +Infinity) === true');
+}
+
+//CHECK#5
+if ((Number.NEGATIVE_INFINITY <= Number.MAX_VALUE) !== true) {
+ $ERROR('#5: (-Infinity <= Number.MAX_VALUE) === true');
+}
+
+//CHECK#6
+if ((Number.NEGATIVE_INFINITY <= Number.MIN_VALUE) !== true) {
+ $ERROR('#6: (-Infinity <= Number.MIN_VALUE) === true');
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.8.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.8.js
new file mode 100644
index 000000000..074b872f7
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.8.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A4.8;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If y is -Infinity and x !== y, return false;
+* @description: x is number primitive;
+*/
+
+//CHECK#1
+if ((0 <= Number.NEGATIVE_INFINITY) !== false) {
+ $ERROR('#1: (0 <= -Infinity) === false');
+}
+
+//CHECK#2
+if ((1.1 <= Number.NEGATIVE_INFINITY) !== false) {
+ $ERROR('#2: (1.1 <= -Infinity) === false');
+}
+
+//CHECK#3
+if ((-1.1 <= Number.NEGATIVE_INFINITY) !== false) {
+ $ERROR('#3: (-1.1 <= -Infinity) === false');
+}
+
+//CHECK#4
+if ((Number.POSITIVE_INFINITY <= Number.NEGATIVE_INFINITY) !== false) {
+ $ERROR('#4: (+Infinity <= -Infinity) === false');
+}
+
+//CHECK#5
+if ((Number.MAX_VALUE <= Number.NEGATIVE_INFINITY) !== false) {
+ $ERROR('#5: (Number.MAX_VALUE <= -Infinity) === false');
+}
+
+//CHECK#6
+if ((Number.MIN_VALUE <= Number.NEGATIVE_INFINITY) !== false) {
+ $ERROR('#6: (Number.MIN_VALUE <= -Infinity) === false');
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.9.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.9.js
new file mode 100644
index 000000000..b87947fd4
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.8_Relational_Operators/11.8.3_The_Less_than_or_equal_Operator/S11.8.3_A4.9.js
@@ -0,0 +1,51 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.8.3_A4.9;
+* @section: 11.8.3, 11.8.5;
+* @assertion: If x is less or equal than y and these values are both finite non-zero, return true; otherwise, return false;
+* @description: x and y are number primitives;
+*/
+
+//CHECK#1
+if ((1.1 <= 1) !== false) {
+ $ERROR('#1: (1.1 <= 1) === false');
+}
+
+//CHECK#2
+if ((1 <= 1.1) !== true) {
+ $ERROR('#2: (1 <= 1.1) === true');
+}
+
+//CHECK#3
+if ((-1.1 <= -1) !== true) {
+ $ERROR('#3: (-1.1 <= -1) === true');
+}
+
+//CHECK#4
+if ((-1 <= -1.1) !== false) {
+ $ERROR('#4: (-1 <= -1.1) === false');
+}
+
+//CHECK#5
+if ((0 <= 0.1) !== true) {
+ $ERROR('#5: (0 <= 0.1) === true');
+}
+
+//CHECK#6
+if ((-0.1 <= 0) !== true) {
+ $ERROR('#6: (-0.1 <= 0) === true');
+}
+
+//CHECK#7
+if ((Number.MAX_VALUE/2 <= Number.MAX_VALUE) !== true) {
+ $ERROR('#7: (Number.MAX_VALUE/2 <= Number.MAX_VALUE) === true');
+}
+
+//CHECK#8
+if ((Number.MIN_VALUE <= Number.MIN_VALUE*2) !== true) {
+ $ERROR('#8: (Number.MIN_VALUE <= Number.MIN_VALUE*2) === true');
+}
+
+