| OLD | NEW | 
|     1 // Copyright 2012 the V8 project authors. All rights reserved. |     1 // Copyright 2012 the V8 project authors. All rights reserved. | 
|     2 // Redistribution and use in source and binary forms, with or without |     2 // Redistribution and use in source and binary forms, with or without | 
|     3 // modification, are permitted provided that the following conditions are |     3 // modification, are permitted provided that the following conditions are | 
|     4 // met: |     4 // met: | 
|     5 // |     5 // | 
|     6 //     * Redistributions of source code must retain the above copyright |     6 //     * Redistributions of source code must retain the above copyright | 
|     7 //       notice, this list of conditions and the following disclaimer. |     7 //       notice, this list of conditions and the following disclaimer. | 
|     8 //     * Redistributions in binary form must reproduce the above |     8 //     * Redistributions in binary form must reproduce the above | 
|     9 //       copyright notice, this list of conditions and the following |     9 //       copyright notice, this list of conditions and the following | 
|    10 //       disclaimer in the documentation and/or other materials provided |    10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   595       scanner_(isolate_->unicode_cache()), |   595       scanner_(isolate_->unicode_cache()), | 
|   596       reusable_preparser_(NULL), |   596       reusable_preparser_(NULL), | 
|   597       top_scope_(NULL), |   597       top_scope_(NULL), | 
|   598       current_function_state_(NULL), |   598       current_function_state_(NULL), | 
|   599       target_stack_(NULL), |   599       target_stack_(NULL), | 
|   600       extension_(extension), |   600       extension_(extension), | 
|   601       pre_data_(pre_data), |   601       pre_data_(pre_data), | 
|   602       fni_(NULL), |   602       fni_(NULL), | 
|   603       allow_natives_syntax_((parser_flags & kAllowNativesSyntax) != 0), |   603       allow_natives_syntax_((parser_flags & kAllowNativesSyntax) != 0), | 
|   604       allow_lazy_((parser_flags & kAllowLazy) != 0), |   604       allow_lazy_((parser_flags & kAllowLazy) != 0), | 
 |   605       allow_modules_((parser_flags & kAllowModules) != 0), | 
|   605       stack_overflow_(false), |   606       stack_overflow_(false), | 
|   606       parenthesized_function_(false) { |   607       parenthesized_function_(false) { | 
|   607   AstNode::ResetIds(); |   608   AstNode::ResetIds(); | 
|   608   if ((parser_flags & kLanguageModeMask) == EXTENDED_MODE) { |   609   if ((parser_flags & kLanguageModeMask) == EXTENDED_MODE) { | 
|   609     scanner().SetHarmonyScoping(true); |   610     scanner().SetHarmonyScoping(true); | 
|   610   } |   611   } | 
 |   612   if ((parser_flags & kAllowModules) != 0) { | 
 |   613     scanner().SetHarmonyModules(true); | 
 |   614   } | 
|   611 } |   615 } | 
|   612  |   616  | 
|   613  |   617  | 
|   614 FunctionLiteral* Parser::ParseProgram(CompilationInfo* info) { |   618 FunctionLiteral* Parser::ParseProgram(CompilationInfo* info) { | 
|   615   ZoneScope zone_scope(isolate(), DONT_DELETE_ON_EXIT); |   619   ZoneScope zone_scope(isolate(), DONT_DELETE_ON_EXIT); | 
|   616  |   620  | 
|   617   HistogramTimerScope timer(isolate()->counters()->parse()); |   621   HistogramTimerScope timer(isolate()->counters()->parse()); | 
|   618   Handle<String> source(String::cast(script_->source())); |   622   Handle<String> source(String::cast(script_->source())); | 
|   619   isolate()->counters()->total_parse_size()->Increment(source->length()); |   623   isolate()->counters()->total_parse_size()->Increment(source->length()); | 
|   620   fni_ = new(zone()) FuncNameInferrer(isolate()); |   624   fni_ = new(zone()) FuncNameInferrer(isolate()); | 
| (...skipping 3715 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  4336   HistogramTimerScope preparse_scope(isolate()->counters()->pre_parse()); |  4340   HistogramTimerScope preparse_scope(isolate()->counters()->pre_parse()); | 
|  4337   ASSERT_EQ(Token::LBRACE, scanner().current_token()); |  4341   ASSERT_EQ(Token::LBRACE, scanner().current_token()); | 
|  4338  |  4342  | 
|  4339   if (reusable_preparser_ == NULL) { |  4343   if (reusable_preparser_ == NULL) { | 
|  4340     intptr_t stack_limit = isolate()->stack_guard()->real_climit(); |  4344     intptr_t stack_limit = isolate()->stack_guard()->real_climit(); | 
|  4341     bool do_allow_lazy = true; |  4345     bool do_allow_lazy = true; | 
|  4342     reusable_preparser_ = new preparser::PreParser(&scanner_, |  4346     reusable_preparser_ = new preparser::PreParser(&scanner_, | 
|  4343                                                    NULL, |  4347                                                    NULL, | 
|  4344                                                    stack_limit, |  4348                                                    stack_limit, | 
|  4345                                                    do_allow_lazy, |  4349                                                    do_allow_lazy, | 
|  4346                                                    allow_natives_syntax_); |  4350                                                    allow_natives_syntax_, | 
 |  4351                                                    allow_modules_); | 
|  4347   } |  4352   } | 
|  4348   preparser::PreParser::PreParseResult result = |  4353   preparser::PreParser::PreParseResult result = | 
|  4349       reusable_preparser_->PreParseLazyFunction(top_scope_->language_mode(), |  4354       reusable_preparser_->PreParseLazyFunction(top_scope_->language_mode(), | 
|  4350                                                 logger); |  4355                                                 logger); | 
|  4351   return result; |  4356   return result; | 
|  4352 } |  4357 } | 
|  4353  |  4358  | 
|  4354  |  4359  | 
|  4355 Expression* Parser::ParseV8Intrinsic(bool* ok) { |  4360 Expression* Parser::ParseV8Intrinsic(bool* ok) { | 
|  4356   // CallRuntime :: |  4361   // CallRuntime :: | 
| (...skipping 1301 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5658  |  5663  | 
|  5659 bool ParserApi::Parse(CompilationInfo* info, int parsing_flags) { |  5664 bool ParserApi::Parse(CompilationInfo* info, int parsing_flags) { | 
|  5660   ASSERT(info->function() == NULL); |  5665   ASSERT(info->function() == NULL); | 
|  5661   FunctionLiteral* result = NULL; |  5666   FunctionLiteral* result = NULL; | 
|  5662   Handle<Script> script = info->script(); |  5667   Handle<Script> script = info->script(); | 
|  5663   ASSERT((parsing_flags & kLanguageModeMask) == CLASSIC_MODE); |  5668   ASSERT((parsing_flags & kLanguageModeMask) == CLASSIC_MODE); | 
|  5664   if (!info->is_native() && FLAG_harmony_scoping) { |  5669   if (!info->is_native() && FLAG_harmony_scoping) { | 
|  5665     // Harmony scoping is requested. |  5670     // Harmony scoping is requested. | 
|  5666     parsing_flags |= EXTENDED_MODE; |  5671     parsing_flags |= EXTENDED_MODE; | 
|  5667   } |  5672   } | 
 |  5673   if (!info->is_native() && FLAG_harmony_modules) { | 
 |  5674     parsing_flags |= kAllowModules; | 
 |  5675   } | 
|  5668   if (FLAG_allow_natives_syntax || info->is_native()) { |  5676   if (FLAG_allow_natives_syntax || info->is_native()) { | 
|  5669     // We requre %identifier(..) syntax. |  5677     // We requre %identifier(..) syntax. | 
|  5670     parsing_flags |= kAllowNativesSyntax; |  5678     parsing_flags |= kAllowNativesSyntax; | 
|  5671   } |  5679   } | 
|  5672   if (info->is_lazy()) { |  5680   if (info->is_lazy()) { | 
|  5673     ASSERT(!info->is_eval()); |  5681     ASSERT(!info->is_eval()); | 
|  5674     Parser parser(script, parsing_flags, NULL, NULL); |  5682     Parser parser(script, parsing_flags, NULL, NULL); | 
|  5675     result = parser.ParseLazy(info); |  5683     result = parser.ParseLazy(info); | 
|  5676   } else { |  5684   } else { | 
|  5677     ScriptDataImpl* pre_data = info->pre_parse_data(); |  5685     ScriptDataImpl* pre_data = info->pre_parse_data(); | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
|  5689       ASSERT(info->isolate()->has_pending_exception()); |  5697       ASSERT(info->isolate()->has_pending_exception()); | 
|  5690     } else { |  5698     } else { | 
|  5691       result = parser.ParseProgram(info); |  5699       result = parser.ParseProgram(info); | 
|  5692     } |  5700     } | 
|  5693   } |  5701   } | 
|  5694   info->SetFunction(result); |  5702   info->SetFunction(result); | 
|  5695   return (result != NULL); |  5703   return (result != NULL); | 
|  5696 } |  5704 } | 
|  5697  |  5705  | 
|  5698 } }  // namespace v8::internal |  5706 } }  // namespace v8::internal | 
| OLD | NEW |