diff options
Diffstat (limited to 'js/src/tests/ecma_6/String/IsRegExp.js')
-rw-r--r-- | js/src/tests/ecma_6/String/IsRegExp.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/js/src/tests/ecma_6/String/IsRegExp.js b/js/src/tests/ecma_6/String/IsRegExp.js new file mode 100644 index 000000000..f8f4d3fb1 --- /dev/null +++ b/js/src/tests/ecma_6/String/IsRegExp.js @@ -0,0 +1,24 @@ +var BUGNUMBER = 1054755; +var summary = 'String.prototype.{startsWith,endsWith,includes} should call IsRegExp.'; + +print(BUGNUMBER + ": " + summary); + +for (var method of ["startsWith", "endsWith", "includes"]) { + for (var re of [/foo/, new RegExp()]) { + assertThrowsInstanceOf(() => "foo"[method](re), TypeError); + + re[Symbol.match] = false; + "foo"[method](re); + } + + for (var v1 of [true, 1, "bar", [], {}, Symbol.iterator]) { + assertThrowsInstanceOf(() => "foo"[method]({ [Symbol.match]: v1 }), TypeError); + } + + for (var v2 of [false, 0, undefined, ""]) { + "foo"[method]({ [Symbol.match]: v2 }); + } +} + +if (typeof reportCompare === "function") + reportCompare(true, true); |