Fix exception handling of RegExp constructor
authorSimon Hausmann <simon.hausmann@digia.com>
Thu, 17 Jan 2013 13:08:17 +0000 (14:08 +0100)
committerLars Knoll <lars.knoll@digia.com>
Thu, 17 Jan 2013 14:11:34 +0000 (15:11 +0100)
Invalid regular expressions should throw a syntax error instead of
a type error.

Change-Id: Ic7357f423703646a3941aa780d05f81faefec791
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
qv4ecmaobjects.cpp
tests/TestExpectations

index 3392fae..3f1ad3c 100644 (file)
@@ -2858,14 +2858,14 @@ Value RegExpCtor::construct(ExecutionContext *ctx)
             } else if (str.at(i) == QChar('m') && !multiLine) {
                 multiLine = true;
             } else {
-                ctx->throwTypeError();
+                ctx->throwSyntaxError(0);
             }
         }
     }
 
     RefPtr<RegExp> re = RegExp::create(ctx->engine, r.stringValue()->toQString(), ignoreCase, multiLine);
     if (!re->isValid())
-        ctx->throwTypeError();
+        ctx->throwSyntaxError(0);
 
     RegExpObject *o = ctx->engine->newRegExpObject(re, global);
     return Value::fromObject(o);
index 56b5509..7284105 100644 (file)
@@ -377,70 +377,11 @@ S15.1.2.2_A9.2 failing
 S15.1.2.2_A9.3 failing
 S15.1.2.2_A9.4 failing
 S15.1.2.2_A9.7 failing
-S15.10.2.15_A1_T38 failing
-S15.10.2.15_A1_T39 failing
-S15.10.2.15_A1_T4 failing
-S15.10.2.15_A1_T40 failing
-S15.10.2.15_A1_T41 failing
-S15.10.2.15_A1_T5 failing
-S15.10.2.15_A1_T6 failing
-S15.10.2.15_A1_T7 failing
-S15.10.2.15_A1_T8 failing
-S15.10.2.15_A1_T9 failing
 S15.10.2.3_A1_T15 failing
 S15.10.2.3_A1_T17 failing
 S15.10.2.3_A1_T2 failing
 S15.10.2.5_A1_T4 failing
 S15.10.2.12_A6_T1 failing
-S15.10.2.15_A1_T1 failing
-S15.10.2.15_A1_T10 failing
-S15.10.2.15_A1_T11 failing
-S15.10.2.15_A1_T12 failing
-S15.10.2.15_A1_T13 failing
-S15.10.2.15_A1_T14 failing
-S15.10.2.15_A1_T15 failing
-S15.10.2.15_A1_T16 failing
-S15.10.2.15_A1_T17 failing
-S15.10.2.15_A1_T18 failing
-S15.10.2.15_A1_T19 failing
-S15.10.2.15_A1_T2 failing
-S15.10.2.15_A1_T20 failing
-S15.10.2.15_A1_T21 failing
-S15.10.2.15_A1_T22 failing
-S15.10.2.15_A1_T23 failing
-S15.10.2.15_A1_T24 failing
-S15.10.2.15_A1_T25 failing
-S15.10.2.15_A1_T26 failing
-S15.10.2.15_A1_T27 failing
-S15.10.2.15_A1_T28 failing
-S15.10.2.15_A1_T29 failing
-S15.10.2.15_A1_T3 failing
-S15.10.2.15_A1_T30 failing
-S15.10.2.15_A1_T31 failing
-S15.10.2.15_A1_T32 failing
-S15.10.2.15_A1_T33 failing
-S15.10.2.15_A1_T34 failing
-S15.10.2.15_A1_T35 failing
-S15.10.2.15_A1_T36 failing
-S15.10.2.15_A1_T37 failing
-S15.10.1_A1_T12 failing
-S15.10.1_A1_T13 failing
-S15.10.1_A1_T14 failing
-S15.10.1_A1_T15 failing
-S15.10.1_A1_T16 failing
-S15.10.1_A1_T2 failing
-S15.10.1_A1_T3 failing
-S15.10.1_A1_T4 failing
-S15.10.1_A1_T5 failing
-S15.10.1_A1_T6 failing
-S15.10.1_A1_T7 failing
-S15.10.1_A1_T8 failing
-S15.10.1_A1_T9 failing
-15.10.2.15-3-1 failing
-15.10.2.15-3-2 failing
-15.10.2.15-6-1 failing
-15.10.2.2-1 failing
-15.10.2.5-3-1 failing
 S15.10.2.12_A1_T1 failing
 S15.10.2.12_A2_T1 failing
 S15.10.2.12_A3_T1 failing
@@ -462,19 +403,6 @@ S15.10.2.8_A3_T27 failing
 S15.10.2.8_A3_T28 failing
 S15.10.2.8_A3_T29 failing
 S15.10.2.9_A1_T2 failing
-S15.10.4.1_A5_T1 failing
-S15.10.4.1_A5_T2 failing
-S15.10.4.1_A5_T3 failing
-S15.10.4.1_A5_T4 failing
-S15.10.4.1_A5_T6 failing
-S15.10.4.1_A5_T7 failing
-S15.10.4.1_A5_T8 failing
-S15.10.4.1_A5_T9 failing
-S15.10.4.1_A9_T1 failing
-S15.10.4.1_A9_T2 failing
-S15.10.4.1_A9_T3 failing
-15.10.4.1-2 failing
-15.10.4.1-3 failing
 S15.10.5_A1 failing
 S15.10.6.2_A1_T2 failing
 S15.10.6.2_A1_T6 failing
@@ -692,9 +620,6 @@ S15.1.3.4_A5.4 failing
 S15.1.3.4_A5.6 failing
 S15.1.3.4_A5.7 failing
 S15.1.3.4_A6_T1 failing
-S15.10.1_A1_T1 failing
-S15.10.1_A1_T10 failing
-S15.10.1_A1_T11 failing
 15.2.3.12-3-27 failing
 15.2.3.13-2-12 failing
 15.2.3.2-2-18 failing
@@ -2792,4 +2717,4 @@ S15.4.4.13_A1_T2 failing
 # Bugs in Array.prototype
 15.4.4.14-9-b-i-5 failing
 15.4.4.16-7-c-i-6 failing
-15.4.4.17-7-c-i-6 failing
+15.4.4.17-7-c-i-6 failing
\ No newline at end of file