diff --git a/rhino/src/main/java/org/mozilla/javascript/NativeString.java b/rhino/src/main/java/org/mozilla/javascript/NativeString.java index 421de70dd1..f2b128f07f 100644 --- a/rhino/src/main/java/org/mozilla/javascript/NativeString.java +++ b/rhino/src/main/java/org/mozilla/javascript/NativeString.java @@ -885,7 +885,9 @@ else if (Normalizer.Form.NFC.name().equals(formStr)) } } - Object matcher = getPropSymbolMatchAll(cx, scope, regexp); + Object matcher = + ScriptRuntime.getObjectElem( + regexp, SymbolKey.MATCH_ALL, cx, scope); // If method is not undefined, it should be a Callable if (matcher != null && !Undefined.isUndefined(matcher)) { if (!(matcher instanceof Callable)) { @@ -907,7 +909,8 @@ else if (Normalizer.Form.NFC.name().equals(formStr)) Object compiledRegExp = regExpProxy.compileRegExp(cx, regexpToString, "g"); Scriptable rx = regExpProxy.wrapRegExp(cx, scope, compiledRegExp); - Object method = getPropSymbolMatchAll(cx, scope, rx); + Object method = + ScriptRuntime.getObjectElem(rx, SymbolKey.MATCH_ALL, cx, scope); if (!(method instanceof Callable)) { throw ScriptRuntime.notFunctionError( rx, method, SymbolKey.MATCH_ALL.getName()); @@ -920,13 +923,6 @@ else if (Normalizer.Form.NFC.name().equals(formStr)) } } - private static Object getPropSymbolMatchAll(Context cx, Scriptable scope, Object object) { - // Technically this _could_ fail if someone removed Symbol... but that's really an edge case - Scriptable symbol = (Scriptable) ScriptRuntime.name(cx, scope, "Symbol"); - Symbol symbolMatchAll = (Symbol) ScriptRuntime.getObjectProp(symbol, "matchAll", cx, scope); - return ScriptRuntime.getObjectElem(object, symbolMatchAll, cx, scope); - } - private static NativeString realThis(Scriptable thisObj, IdFunctionObject f) { return ensureType(thisObj, NativeString.class, f); }