Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 544d1904f95ec3f6a1b6a5ba2159cf98db34793b..3f5f009e911a7635294fc3f377de34e6eccf8011 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -480,20 +480,22 @@ Handle<SharedFunctionInfo> Compiler::Compile(Handle<String> source, |
// that would be compiled lazily anyway, so we skip the preparse step |
// in that case too. |
ScriptDataImpl* pre_data = input_pre_data; |
- bool harmony_scoping = natives != NATIVES_CODE && FLAG_harmony_scoping; |
+ int flags = kNoParsingFlags; |
+ if ((natives == NATIVES_CODE) || FLAG_allow_natives_syntax) { |
+ flags |= kAllowNativesSyntax; |
+ } |
+ if (natives != NATIVES_CODE && FLAG_harmony_scoping) { |
+ flags |= kHarmonyScoping; |
+ } |
if (pre_data == NULL |
&& source_length >= FLAG_min_preparse_length) { |
if (source->IsExternalTwoByteString()) { |
ExternalTwoByteStringUC16CharacterStream stream( |
Handle<ExternalTwoByteString>::cast(source), 0, source->length()); |
- pre_data = ParserApi::PartialPreParse(&stream, |
- extension, |
- harmony_scoping); |
+ pre_data = ParserApi::PartialPreParse(&stream, extension, flags); |
} else { |
GenericStringUC16CharacterStream stream(source, 0, source->length()); |
- pre_data = ParserApi::PartialPreParse(&stream, |
- extension, |
- harmony_scoping); |
+ pre_data = ParserApi::PartialPreParse(&stream, extension, flags); |
} |
} |