summaryrefslogtreecommitdiffstats
path: root/js/src/tests/ecma_6/RegExp
diff options
context:
space:
mode:
authorjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-03-24 16:01:06 +0100
committerjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-03-24 16:01:06 +0100
commit5fd5b2ac2f396eb1d8707a691aa26ad159ad25e3 (patch)
tree5818ef1493eb4531162f5dc6e193f5227caf9049 /js/src/tests/ecma_6/RegExp
parentaae3a117342e8959c074ea9f36cefac772f608d3 (diff)
downloadUXP-5fd5b2ac2f396eb1d8707a691aa26ad159ad25e3.tar
UXP-5fd5b2ac2f396eb1d8707a691aa26ad159ad25e3.tar.gz
UXP-5fd5b2ac2f396eb1d8707a691aa26ad159ad25e3.tar.lz
UXP-5fd5b2ac2f396eb1d8707a691aa26ad159ad25e3.tar.xz
UXP-5fd5b2ac2f396eb1d8707a691aa26ad159ad25e3.zip
Bug 1317397: Only set lastIndex for global or sticky RegExps in RegExpBuiltinExec per ES2017
Diffstat (limited to 'js/src/tests/ecma_6/RegExp')
-rw-r--r--js/src/tests/ecma_6/RegExp/compile-lastIndex.js34
-rw-r--r--js/src/tests/ecma_6/RegExp/match-local-tolength-recompilation.js4
-rw-r--r--js/src/tests/ecma_6/RegExp/replace-local-tolength-recompilation.js4
-rw-r--r--js/src/tests/ecma_6/RegExp/search-trace.js2
4 files changed, 20 insertions, 24 deletions
diff --git a/js/src/tests/ecma_6/RegExp/compile-lastIndex.js b/js/src/tests/ecma_6/RegExp/compile-lastIndex.js
index 80c820f43..5bd7e0b98 100644
--- a/js/src/tests/ecma_6/RegExp/compile-lastIndex.js
+++ b/js/src/tests/ecma_6/RegExp/compile-lastIndex.js
@@ -17,15 +17,12 @@ print(BUGNUMBER + ": " + summary);
var regex = /foo/i;
-// Aside from making .lastIndex non-writable, this has two incidental effects
+// Aside from making .lastIndex non-writable, this has one incidental effect
// ubiquitously tested through the remainder of this test:
//
// * RegExp.prototype.compile will do everything it ordinarily does, BUT it
// will throw a TypeError when attempting to zero .lastIndex immediately
// before succeeding overall.
-// * RegExp.prototype.test for a non-global and non-sticky regular expression,
-// in case of a match, will return true (as normal). BUT if no match is
-// found, it will throw a TypeError when attempting to modify .lastIndex.
//
// Ain't it great?
Object.defineProperty(regex, "lastIndex", { value: 42, writable: false });
@@ -40,8 +37,8 @@ assertEq(regex.lastIndex, 42);
assertEq(regex.test("foo"), true);
assertEq(regex.test("FOO"), true);
-assertThrowsInstanceOf(() => regex.test("bar"), TypeError);
-assertThrowsInstanceOf(() => regex.test("BAR"), TypeError);
+assertEq(regex.test("bar"), false);
+assertEq(regex.test("BAR"), false);
assertThrowsInstanceOf(() => regex.compile("bar"), TypeError);
@@ -52,10 +49,10 @@ assertEq(regex.unicode, false);
assertEq(regex.sticky, false);
assertEq(Object.getOwnPropertyDescriptor(regex, "lastIndex").writable, false);
assertEq(regex.lastIndex, 42);
-assertThrowsInstanceOf(() => regex.test("foo"), TypeError);
-assertThrowsInstanceOf(() => regex.test("FOO"), TypeError);
+assertEq(regex.test("foo"), false);
+assertEq(regex.test("FOO"), false);
assertEq(regex.test("bar"), true);
-assertThrowsInstanceOf(() => regex.test("BAR"), TypeError);
+assertEq(regex.test("BAR"), false);
assertThrowsInstanceOf(() => regex.compile("^baz", "m"), TypeError);
@@ -66,19 +63,16 @@ assertEq(regex.unicode, false);
assertEq(regex.sticky, false);
assertEq(Object.getOwnPropertyDescriptor(regex, "lastIndex").writable, false);
assertEq(regex.lastIndex, 42);
-assertThrowsInstanceOf(() => regex.test("foo"), TypeError);
-assertThrowsInstanceOf(() => regex.test("FOO"), TypeError);
-assertThrowsInstanceOf(() => regex.test("bar"), TypeError);
-assertThrowsInstanceOf(() => regex.test("BAR"), TypeError);
+assertEq(regex.test("foo"), false);
+assertEq(regex.test("FOO"), false);
+assertEq(regex.test("bar"), false);
+assertEq(regex.test("BAR"), false);
assertEq(regex.test("baz"), true);
-assertThrowsInstanceOf(() => regex.test("BAZ"), TypeError);
-assertThrowsInstanceOf(() => regex.test("012345678901234567890123456789012345678901baz"),
- TypeError);
+assertEq(regex.test("BAZ"), false);
+assertEq(regex.test("012345678901234567890123456789012345678901baz"), false);
assertEq(regex.test("012345678901234567890123456789012345678901\nbaz"), true);
-assertThrowsInstanceOf(() => regex.test("012345678901234567890123456789012345678901BAZ"),
- TypeError);
-assertThrowsInstanceOf(() => regex.test("012345678901234567890123456789012345678901\nBAZ"),
- TypeError);
+assertEq(regex.test("012345678901234567890123456789012345678901BAZ"), false);
+assertEq(regex.test("012345678901234567890123456789012345678901\nBAZ"), false);
/******************************************************************************/
diff --git a/js/src/tests/ecma_6/RegExp/match-local-tolength-recompilation.js b/js/src/tests/ecma_6/RegExp/match-local-tolength-recompilation.js
index 6cb286b8c..9a992f81f 100644
--- a/js/src/tests/ecma_6/RegExp/match-local-tolength-recompilation.js
+++ b/js/src/tests/ecma_6/RegExp/match-local-tolength-recompilation.js
@@ -55,7 +55,7 @@ regExp.lastIndex = {
}
};
regExp[Symbol.match]("a");
-assertEq(regExp.lastIndex, 0, "Update the expected value to |9001| after fixing 1317397");
+assertEq(regExp.lastIndex, 9001);
// Case 3.b: Removes sticky flag without match, validate by checking lastIndex.
var regExp = new RegExp("a", "y");
@@ -69,7 +69,7 @@ regExp.lastIndex = {
}
};
regExp[Symbol.match]("a");
-assertEq(regExp.lastIndex, 0, "Update the expected value to |9002| after fixing 1317397");
+assertEq(regExp.lastIndex, 9002);
if (typeof reportCompare === "function")
reportCompare(true, true);
diff --git a/js/src/tests/ecma_6/RegExp/replace-local-tolength-recompilation.js b/js/src/tests/ecma_6/RegExp/replace-local-tolength-recompilation.js
index 30002c3ed..e03177286 100644
--- a/js/src/tests/ecma_6/RegExp/replace-local-tolength-recompilation.js
+++ b/js/src/tests/ecma_6/RegExp/replace-local-tolength-recompilation.js
@@ -55,7 +55,7 @@ regExp.lastIndex = {
}
};
regExp[Symbol.replace]("a", "");
-assertEq(regExp.lastIndex, 0, "Update the expected value to |9001| after fixing 1317397");
+assertEq(regExp.lastIndex, 9001);
// Case 3.b: Removes sticky flag without match, validate by checking lastIndex.
var regExp = new RegExp("a", "y");
@@ -69,7 +69,7 @@ regExp.lastIndex = {
}
};
regExp[Symbol.replace]("a", "");
-assertEq(regExp.lastIndex, 0, "Update the expected value to |9002| after fixing 1317397");
+assertEq(regExp.lastIndex, 9002);
if (typeof reportCompare === "function")
reportCompare(true, true);
diff --git a/js/src/tests/ecma_6/RegExp/search-trace.js b/js/src/tests/ecma_6/RegExp/search-trace.js
index ef14514c6..fc6bee754 100644
--- a/js/src/tests/ecma_6/RegExp/search-trace.js
+++ b/js/src/tests/ecma_6/RegExp/search-trace.js
@@ -56,6 +56,7 @@ assertEq(log,
"get:lastIndex," +
"set:lastIndex," +
"get:exec,call:exec," +
+ "get:lastIndex," +
"set:lastIndex," +
"get:result[index],");
@@ -70,6 +71,7 @@ assertEq(log,
"get:lastIndex," +
"set:lastIndex," +
"get:exec,call:exec," +
+ "get:lastIndex," +
"set:lastIndex,");
if (typeof reportCompare === "function")