mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 08:18:41 +09:00
parent
d275a63a71
commit
e671c0357b
3 changed files with 32 additions and 5 deletions
|
|
@ -40,9 +40,7 @@ function checkDataProperty(obj, p, expect, msg)
|
|||
|
||||
// Check a bunch of "empty" regular expressions first.
|
||||
|
||||
var choices = [{ msg: "RegExp.prototype",
|
||||
get: function() { return RegExp.prototype; } },
|
||||
{ msg: "new RegExp()",
|
||||
var choices = [{ msg: "new RegExp()",
|
||||
get: function() { return new RegExp(); } },
|
||||
{ msg: "/(?:)/",
|
||||
get: Function("return /(?:)/;") }];
|
||||
|
|
@ -55,7 +53,6 @@ function checkRegExp(r, msg, lastIndex)
|
|||
checkDataProperty(r, "lastIndex", expect, msg);
|
||||
}
|
||||
|
||||
checkRegExp(RegExp.prototype, "RegExp.prototype", 0);
|
||||
checkRegExp(new RegExp(), "new RegExp()", 0);
|
||||
checkRegExp(/(?:)/, "/(?:)/", 0);
|
||||
checkRegExp(Function("return /(?:)/;")(), 'Function("return /(?:)/;")()', 0);
|
||||
|
|
|
|||
31
js/src/tests/ecma_6/RegExp/prototype.js
vendored
Normal file
31
js/src/tests/ecma_6/RegExp/prototype.js
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
const t = RegExp.prototype;
|
||||
|
||||
const properties = "toSource,toString,compile,exec,test," +
|
||||
"flags,global,ignoreCase,multiline,source,sticky,unicode," +
|
||||
"constructor," +
|
||||
"Symbol(Symbol.match),Symbol(Symbol.replace),Symbol(Symbol.search),Symbol(Symbol.split)";
|
||||
assertEq(Reflect.ownKeys(t).map(String).toString(), properties);
|
||||
|
||||
|
||||
// Invoking getters on the prototype should not throw
|
||||
function getter(name) {
|
||||
return Object.getOwnPropertyDescriptor(t, name).get.call(t);
|
||||
}
|
||||
|
||||
assertEq(getter("flags"), "");
|
||||
assertEq(getter("global"), undefined);
|
||||
assertEq(getter("ignoreCase"), undefined);
|
||||
assertEq(getter("multiline"), undefined);
|
||||
assertEq(getter("source"), "(?:)");
|
||||
assertEq(getter("sticky"), undefined);
|
||||
assertEq(getter("unicode"), undefined);
|
||||
|
||||
assertEq(t.toString(), "/(?:)/");
|
||||
|
||||
// The methods don't work with the prototype
|
||||
assertThrowsInstanceOf(() => t.compile("b", "i"), TypeError);
|
||||
assertThrowsInstanceOf(() => t.test("x"), TypeError);
|
||||
assertThrowsInstanceOf(() => t.exec("x"), TypeError);
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(0, 0);
|
||||
|
|
@ -22,7 +22,6 @@ function testRegExp(b, c=b) {
|
|||
testRegExp(RegExp(""));
|
||||
testRegExp(/(?:)/);
|
||||
testRegExp(/^(.*)$/gimy);
|
||||
testRegExp(RegExp.prototype);
|
||||
|
||||
var re = /\bx\b/gi;
|
||||
re.expando = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue