Fix bogus uses of preparser API

* src/api.cc (ScriptData::PreCompile): Fix bogus use of bogus value for
  preparsing flags by removing those arguments, which were always zero.

* src/parser.h
* src/parser.cc (ParserApi::PreParse): Remove extension and flags
  arguments, both of which were either always 0 or incorrectly used.

* test/cctest/test-parsing.cc (RegressChromium62639, Regress928): Fix
  more bogus uses of preparser api.

BUG=

Review URL: https://codereview.chromium.org/13496008
Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 9e757a60
......@@ -1655,7 +1655,7 @@ void ObjectTemplate::SetInternalFieldCount(int value) {
ScriptData* ScriptData::PreCompile(const char* input, int length) {
i::Utf8ToUtf16CharacterStream stream(
reinterpret_cast<const unsigned char*>(input), length);
return i::ParserApi::PreParse(&stream, NULL, i::FLAG_harmony_scoping);
return i::ParserApi::PreParse(&stream);
}
......@@ -1664,10 +1664,10 @@ ScriptData* ScriptData::PreCompile(v8::Handle<String> source) {
if (str->IsExternalTwoByteString()) {
i::ExternalTwoByteStringUtf16CharacterStream stream(
i::Handle<i::ExternalTwoByteString>::cast(str), 0, str->length());
return i::ParserApi::PreParse(&stream, NULL, i::FLAG_harmony_scoping);
return i::ParserApi::PreParse(&stream);
} else {
i::GenericStringUtf16CharacterStream stream(str, 0, str->length());
return i::ParserApi::PreParse(&stream, NULL, i::FLAG_harmony_scoping);
return i::ParserApi::PreParse(&stream);
}
}
......
......@@ -5926,11 +5926,9 @@ static ScriptDataImpl* DoPreParse(Utf16CharacterStream* source,
}
ScriptDataImpl* ParserApi::PreParse(Utf16CharacterStream* source,
v8::Extension* extension,
int flags) {
Handle<Script> no_script;
if (FLAG_lazy && (extension == NULL)) {
ScriptDataImpl* ParserApi::PreParse(Utf16CharacterStream* source) {
int flags = kNoParsingFlags;
if (FLAG_lazy) {
flags |= kAllowLazy;
}
if (FLAG_harmony_generators) {
......
......@@ -171,9 +171,7 @@ class ParserApi {
static bool Parse(CompilationInfo* info, int flags);
// Generic preparser generating full preparse data.
static ScriptDataImpl* PreParse(Utf16CharacterStream* source,
v8::Extension* extension,
int flags);
static ScriptDataImpl* PreParse(Utf16CharacterStream* source);
};
// ----------------------------------------------------------------------------
......
......@@ -329,8 +329,7 @@ TEST(RegressChromium62639) {
i::Utf8ToUtf16CharacterStream stream(
reinterpret_cast<const i::byte*>(program),
static_cast<unsigned>(strlen(program)));
i::ScriptDataImpl* data =
i::ParserApi::PreParse(&stream, NULL, false);
i::ScriptDataImpl* data = i::ParserApi::PreParse(&stream);
CHECK(data->HasError());
delete data;
}
......@@ -355,7 +354,7 @@ TEST(Regress928) {
i::Handle<i::String> source(
FACTORY->NewStringFromAscii(i::CStrVector(program)));
i::GenericStringUtf16CharacterStream stream(source, 0, source->length());
i::ScriptDataImpl* data = i::ParserApi::PreParse(&stream, NULL, false);
i::ScriptDataImpl* data = i::ParserApi::PreParse(&stream);
CHECK(!data->HasError());
data->Initialize();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment