parse doesn't initialize the 16-bit version of the JSC parser with defaultConstructorKind
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 28 Mar 2015 04:02:49 +0000 (04:02 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 28 Mar 2015 04:02:49 +0000 (04:02 +0000)
https://bugs.webkit.org/show_bug.cgi?id=143170

Reviewed by Benjamin Poulain.

Assert that we never use 16-bit version of the parser to parse a default constructor
since both base and derived default constructors should be using a 8-bit string.

* parser/Parser.h:
(JSC::parse):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@182102 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/parser/Parser.h

index 9c300e07fb4778e82950681073ec86e2757d0b36..c8ca909507017c6c9404c8fcb9738db932079c7a 100644 (file)
@@ -1,3 +1,16 @@
+2015-03-27  Ryosuke Niwa  <rniwa@webkit.org>
+
+        parse doesn't initialize the 16-bit version of the JSC parser with defaultConstructorKind
+        https://bugs.webkit.org/show_bug.cgi?id=143170
+
+        Reviewed by Benjamin Poulain.
+
+        Assert that we never use 16-bit version of the parser to parse a default constructor
+        since both base and derived default constructors should be using a 8-bit string.
+
+        * parser/Parser.h:
+        (JSC::parse):
+
 2015-03-27  Ryosuke Niwa  <rniwa@webkit.org>
 
         ES6 Classes: Runtime error in JIT'd class calling super() with arguments and superclass has default constructor
index 863f9c1560842a9856d8e97751cd8bedc8abd87a..dcec50af60f1ef71f1aa9e4f88d8fc7d7f56a74a 100644 (file)
@@ -1006,6 +1006,7 @@ std::unique_ptr<ParsedNode> parse(
         }
         return result;
     }
+    ASSERT_WITH_MESSAGE(defaultConstructorKind == ConstructorKind::None, "BuiltinExecutables::createDefaultConstructor should always use a 8-bit string");
     Parser<Lexer<UChar>> parser(vm, source, parameters, name, builtinMode, strictMode, codeType);
     std::unique_ptr<ParsedNode> result = parser.parse<ParsedNode>(error);
     if (positionBeforeLastNewline)