-
Notifications
You must be signed in to change notification settings - Fork 858
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
convert RegEx properties #1183
base: master
Are you sure you want to change the base?
convert RegEx properties #1183
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -109,6 +109,13 @@ public class NativeRegExp extends IdScriptableObject { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private static final int ANCHOR_BOL = -2; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private static final SymbolKey GET_FLAGS = new SymbolKey("[Symbol.getFlags]"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private static final SymbolKey GET_GLOBAL = new SymbolKey("[Symbol.getGlobal]"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private static final SymbolKey GET_IGNORE_CASE = new SymbolKey("[Symbol.getIgnoreCase]"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private static final SymbolKey GET_MULTILINE = new SymbolKey("[Symbol.getMultiline]"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private static final SymbolKey GET_STICKY = new SymbolKey("[Symbol.getSticky]"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private static final SymbolKey GET_SOURCE = new SymbolKey("[Symbol.getSource]"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
public static void init(Context cx, Scriptable scope, boolean sealed) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NativeRegExp proto = NativeRegExpInstantiator.withLanguageVersion(cx.getLanguageVersion()); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -126,6 +133,42 @@ public static void init(Context cx, Scriptable scope, boolean sealed) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ctor.setImmunePrototypeProperty(proto); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ScriptableObject desc = (ScriptableObject) cx.newObject(scope); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. (I don't know much about this area, but...) Could you write simply using Lambda? rhino/src/org/mozilla/javascript/NativePromise.java Lines 41 to 76 in ae78dbf
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will check..... |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("enumerable", desc, Boolean.FALSE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("configurable", desc, Boolean.TRUE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("get", desc, proto.get(GET_FLAGS, proto)); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
proto.defineOwnProperty(cx, "flags", desc); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc = (ScriptableObject) cx.newObject(scope); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("enumerable", desc, Boolean.FALSE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("configurable", desc, Boolean.TRUE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("get", desc, proto.get(GET_GLOBAL, proto)); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
proto.defineOwnProperty(cx, "global", desc); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc = (ScriptableObject) cx.newObject(scope); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("enumerable", desc, Boolean.FALSE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("configurable", desc, Boolean.TRUE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("get", desc, proto.get(GET_IGNORE_CASE, proto)); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
proto.defineOwnProperty(cx, "ignoreCase", desc); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc = (ScriptableObject) cx.newObject(scope); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("enumerable", desc, Boolean.FALSE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("configurable", desc, Boolean.TRUE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("get", desc, proto.get(GET_MULTILINE, proto)); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
proto.defineOwnProperty(cx, "multiline", desc); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc = (ScriptableObject) cx.newObject(scope); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("enumerable", desc, Boolean.FALSE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("configurable", desc, Boolean.TRUE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("get", desc, proto.get(GET_STICKY, proto)); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
proto.defineOwnProperty(cx, "sticky", desc); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc = (ScriptableObject) cx.newObject(scope); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("enumerable", desc, Boolean.FALSE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("configurable", desc, Boolean.TRUE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
desc.put("get", desc, proto.get(GET_SOURCE, proto)); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
proto.defineOwnProperty(cx, "source", desc); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (sealed) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
proto.sealObject(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ctor.sealObject(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -2512,14 +2555,7 @@ private static void reportError(String messageId, String arg) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
throw ScriptRuntime.constructError("SyntaxError", msg); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private static final int Id_lastIndex = 1, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Id_source = 2, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Id_flags = 3, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Id_global = 4, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Id_ignoreCase = 5, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Id_multiline = 6, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Id_sticky = 7, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MAX_INSTANCE_ID = 7; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private static final int Id_lastIndex = 1, Id_source = 2, MAX_INSTANCE_ID = Id_source; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
p-bakker marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@Override | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protected int getMaxInstanceId() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -2536,21 +2572,6 @@ protected int findInstanceIdInfo(String s) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case "source": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id = Id_source; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
break; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case "flags": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id = Id_flags; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
break; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case "global": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id = Id_global; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
break; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case "ignoreCase": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id = Id_ignoreCase; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
break; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case "multiline": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id = Id_multiline; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
break; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case "sticky": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id = Id_sticky; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
break; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
default: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id = 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
break; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -2564,11 +2585,6 @@ protected int findInstanceIdInfo(String s) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
attr = lastIndexAttr; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
break; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_source: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_flags: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_global: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_ignoreCase: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_multiline: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_sticky: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
attr = PERMANENT | READONLY | DONTENUM; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
break; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
default: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -2584,16 +2600,6 @@ protected String getInstanceIdName(int id) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return "lastIndex"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_source: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return "source"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_flags: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return "flags"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_global: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return "global"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_ignoreCase: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return "ignoreCase"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_multiline: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return "multiline"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_sticky: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return "sticky"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return super.getInstanceIdName(id); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -2605,20 +2611,6 @@ protected Object getInstanceIdValue(int id) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return lastIndex; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_source: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return new String(re.source); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_flags: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
StringBuilder buf = new StringBuilder(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
appendFlags(buf); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return buf.toString(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_global: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return ScriptRuntime.wrapBoolean((re.flags & JSREG_GLOB) != 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_ignoreCase: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return ScriptRuntime.wrapBoolean((re.flags & JSREG_FOLD) != 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_multiline: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return ScriptRuntime.wrapBoolean((re.flags & JSREG_MULTILINE) != 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_sticky: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return ScriptRuntime.wrapBoolean((re.flags & JSREG_STICKY) != 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return super.getInstanceIdValue(id); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -2637,11 +2629,6 @@ protected void setInstanceIdValue(int id, Object value) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
setLastIndex(value); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_source: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_flags: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_global: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_ignoreCase: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_multiline: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_sticky: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
super.setInstanceIdValue(id, value); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -2667,6 +2654,30 @@ protected void initPrototypeId(int id) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
initPrototypeMethod(REGEXP_TAG, id, SymbolKey.SEARCH, "[Symbol.search]", 1); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (id == SymbolId_getFlags) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
initPrototypeMethod(REGEXP_TAG, id, GET_FLAGS, "get flags", 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (id == SymbolId_getGlobal) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
initPrototypeMethod(REGEXP_TAG, id, GET_GLOBAL, "get global", 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (id == SymbolId_getIgnoreCase) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
initPrototypeMethod(REGEXP_TAG, id, GET_IGNORE_CASE, "get ignoreCase", 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (id == SymbolId_getMultiline) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
initPrototypeMethod(REGEXP_TAG, id, GET_MULTILINE, "get multiline", 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (id == SymbolId_getSticky) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
initPrototypeMethod(REGEXP_TAG, id, GET_STICKY, "get sticky", 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (id == SymbolId_getSource) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
initPrototypeMethod(REGEXP_TAG, id, GET_SOURCE, "get source", 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
String s; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
int arity; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -2728,6 +2739,24 @@ public Object execIdCall( | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case Id_prefix: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return realThis(thisObj, f).execSub(cx, scope, args, PREFIX); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case SymbolId_getFlags: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return realThis(thisObj, f).js_getFlags(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case SymbolId_getGlobal: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return realThis(thisObj, f).js_getGlobal(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case SymbolId_getIgnoreCase: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return realThis(thisObj, f).js_getIgnoreCase(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case SymbolId_getMultiline: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return realThis(thisObj, f).js_getMultiline(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case SymbolId_getSticky: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return realThis(thisObj, f).js_getSticky(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case SymbolId_getSource: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return realThis(thisObj, f).toString(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case SymbolId_match: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return realThis(thisObj, f).execSub(cx, scope, args, MATCH); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -2751,6 +2780,25 @@ protected int findPrototypeId(Symbol k) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (SymbolKey.SEARCH.equals(k)) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return SymbolId_search; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (GET_FLAGS.equals(k)) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return SymbolId_getFlags; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (GET_GLOBAL.equals(k)) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return SymbolId_getGlobal; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (GET_IGNORE_CASE.equals(k)) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return SymbolId_getIgnoreCase; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (GET_MULTILINE.equals(k)) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return SymbolId_getMultiline; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (GET_STICKY.equals(k)) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return SymbolId_getSticky; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (GET_SOURCE.equals(k)) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return SymbolId_getSource; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -2783,6 +2831,28 @@ protected int findPrototypeId(String s) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return id; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private Object js_getFlags() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
p-bakker marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
StringBuilder buf = new StringBuilder(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
appendFlags(buf); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return buf.toString(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private Object js_getGlobal() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return ScriptRuntime.wrapBoolean((re.flags & JSREG_GLOB) != 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private Object js_getIgnoreCase() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return ScriptRuntime.wrapBoolean((re.flags & JSREG_FOLD) != 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private Object js_getMultiline() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return ScriptRuntime.wrapBoolean((re.flags & JSREG_MULTILINE) != 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private Object js_getSticky() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return ScriptRuntime.wrapBoolean((re.flags & JSREG_STICKY) != 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private static final int Id_compile = 1, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Id_toString = 2, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Id_toSource = 3, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -2791,7 +2861,13 @@ protected int findPrototypeId(String s) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Id_prefix = 6, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SymbolId_match = 7, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SymbolId_search = 8, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MAX_PROTOTYPE_ID = SymbolId_search; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SymbolId_getFlags = 9, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SymbolId_getGlobal = 10, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SymbolId_getIgnoreCase = 11, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SymbolId_getMultiline = 12, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SymbolId_getSticky = 13, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SymbolId_getSource = 14, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MAX_PROTOTYPE_ID = SymbolId_getSource; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private RECompiled re; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Object lastIndex = ScriptRuntime.zeroObj; /* index after last match, for //g iterator */ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this a
Symbol
?Symbol
is written as[ @@match ]
.https://262.ecma-international.org/12.0/#sec-get-regexp.prototype.flags