aboutsummaryrefslogtreecommitdiff
path: root/src/jdk/nashorn/internal/objects
diff options
context:
space:
mode:
authorhannesw <none@none>2013-09-26 11:47:24 +0200
committerhannesw <none@none>2013-09-26 11:47:24 +0200
commit54155ecac81d849c2a5387c4ee13cc14dc2966ff (patch)
tree6ca87c15d0c45a1f9fbfa46e3cd0e266e2726e46 /src/jdk/nashorn/internal/objects
parent3340d2d8e399643da49c1e3f3cd56e8484aa58ba (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.java16
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);
}