diff options
author | hannesw <none@none> | 2013-09-26 11:47:24 +0200 |
---|---|---|
committer | hannesw <none@none> | 2013-09-26 11:47:24 +0200 |
commit | 54155ecac81d849c2a5387c4ee13cc14dc2966ff (patch) | |
tree | 6ca87c15d0c45a1f9fbfa46e3cd0e266e2726e46 /src/jdk/nashorn/internal/objects | |
parent | 3340d2d8e399643da49c1e3f3cd56e8484aa58ba (diff) |
8025486: RegExp constructor arguments are not evaluated in right order
Reviewed-by: sundar
Diffstat (limited to 'src/jdk/nashorn/internal/objects')
-rw-r--r-- | src/jdk/nashorn/internal/objects/NativeRegExp.java | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/jdk/nashorn/internal/objects/NativeRegExp.java b/src/jdk/nashorn/internal/objects/NativeRegExp.java index be4a93d0..318ca2a0 100644 --- a/src/jdk/nashorn/internal/objects/NativeRegExp.java +++ b/src/jdk/nashorn/internal/objects/NativeRegExp.java @@ -191,23 +191,21 @@ public final class NativeRegExp extends ScriptObject { public static NativeRegExp newRegExp(final Object regexp, final Object flags) { String patternString = ""; String flagString = ""; - boolean flagsDefined = false; - - if (flags != UNDEFINED) { - flagsDefined = true; - flagString = JSType.toString(flags); - } if (regexp != UNDEFINED) { if (regexp instanceof NativeRegExp) { - if (!flagsDefined) { - return (NativeRegExp)regexp; // 15.10.3.1 - undefined flags and regexp as + if (flags != UNDEFINED) { + throw typeError("regex.cant.supply.flags"); } - throw typeError("regex.cant.supply.flags"); + return (NativeRegExp)regexp; // 15.10.3.1 - undefined flags and regexp as } patternString = JSType.toString(regexp); } + if (flags != UNDEFINED) { + flagString = JSType.toString(flags); + } + return new NativeRegExp(patternString, flagString); } |