| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 fni_(NULL), | 585 fni_(NULL), |
| 586 stack_overflow_(false), | 586 stack_overflow_(false), |
| 587 parenthesized_function_(false) { | 587 parenthesized_function_(false) { |
| 588 AstNode::ResetIds(); | 588 AstNode::ResetIds(); |
| 589 } | 589 } |
| 590 | 590 |
| 591 | 591 |
| 592 FunctionLiteral* Parser::ParseProgram(Handle<String> source, | 592 FunctionLiteral* Parser::ParseProgram(Handle<String> source, |
| 593 bool in_global_context, | 593 bool in_global_context, |
| 594 StrictModeFlag strict_mode) { | 594 StrictModeFlag strict_mode) { |
| 595 CompilationZoneScope zone_scope(DONT_DELETE_ON_EXIT); | 595 CompilationZoneScope zone_scope(isolate(), DONT_DELETE_ON_EXIT); |
| 596 | 596 |
| 597 HistogramTimerScope timer(isolate()->counters()->parse()); | 597 HistogramTimerScope timer(isolate()->counters()->parse()); |
| 598 isolate()->counters()->total_parse_size()->Increment(source->length()); | 598 isolate()->counters()->total_parse_size()->Increment(source->length()); |
| 599 fni_ = new(zone()) FuncNameInferrer(); | 599 fni_ = new(zone()) FuncNameInferrer(); |
| 600 | 600 |
| 601 // Initialize parser state. | 601 // Initialize parser state. |
| 602 source->TryFlatten(); | 602 source->TryFlatten(); |
| 603 if (source->IsExternalTwoByteString()) { | 603 if (source->IsExternalTwoByteString()) { |
| 604 // Notice that the stream is destroyed at the end of the branch block. | 604 // Notice that the stream is destroyed at the end of the branch block. |
| 605 // The last line of the blocks can't be moved outside, even though they're | 605 // The last line of the blocks can't be moved outside, even though they're |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 667 // Make sure the target stack is empty. | 667 // Make sure the target stack is empty. |
| 668 ASSERT(target_stack_ == NULL); | 668 ASSERT(target_stack_ == NULL); |
| 669 | 669 |
| 670 // If there was a syntax error we have to get rid of the AST | 670 // If there was a syntax error we have to get rid of the AST |
| 671 // and it is not safe to do so before the scope has been deleted. | 671 // and it is not safe to do so before the scope has been deleted. |
| 672 if (result == NULL) zone_scope->DeleteOnExit(); | 672 if (result == NULL) zone_scope->DeleteOnExit(); |
| 673 return result; | 673 return result; |
| 674 } | 674 } |
| 675 | 675 |
| 676 FunctionLiteral* Parser::ParseLazy(CompilationInfo* info) { | 676 FunctionLiteral* Parser::ParseLazy(CompilationInfo* info) { |
| 677 CompilationZoneScope zone_scope(DONT_DELETE_ON_EXIT); | 677 CompilationZoneScope zone_scope(isolate(), DONT_DELETE_ON_EXIT); |
| 678 HistogramTimerScope timer(isolate()->counters()->parse_lazy()); | 678 HistogramTimerScope timer(isolate()->counters()->parse_lazy()); |
| 679 Handle<String> source(String::cast(script_->source())); | 679 Handle<String> source(String::cast(script_->source())); |
| 680 isolate()->counters()->total_parse_size()->Increment(source->length()); | 680 isolate()->counters()->total_parse_size()->Increment(source->length()); |
| 681 | 681 |
| 682 Handle<SharedFunctionInfo> shared_info = info->shared_info(); | 682 Handle<SharedFunctionInfo> shared_info = info->shared_info(); |
| 683 // Initialize parser state. | 683 // Initialize parser state. |
| 684 source->TryFlatten(); | 684 source->TryFlatten(); |
| 685 if (source->IsExternalTwoByteString()) { | 685 if (source->IsExternalTwoByteString()) { |
| 686 ExternalTwoByteStringUC16CharacterStream stream( | 686 ExternalTwoByteStringUC16CharacterStream stream( |
| 687 Handle<ExternalTwoByteString>::cast(source), | 687 Handle<ExternalTwoByteString>::cast(source), |
| (...skipping 3484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4172 if (scanner_.current_token() != Token::RBRACE) { | 4172 if (scanner_.current_token() != Token::RBRACE) { |
| 4173 return ReportUnexpectedToken(); | 4173 return ReportUnexpectedToken(); |
| 4174 } | 4174 } |
| 4175 } | 4175 } |
| 4176 return json_object; | 4176 return json_object; |
| 4177 } | 4177 } |
| 4178 | 4178 |
| 4179 | 4179 |
| 4180 // Parse a JSON array. Scanner must be right after '[' token. | 4180 // Parse a JSON array. Scanner must be right after '[' token. |
| 4181 Handle<Object> JsonParser::ParseJsonArray() { | 4181 Handle<Object> JsonParser::ParseJsonArray() { |
| 4182 ZoneScope zone_scope(DELETE_ON_EXIT); | 4182 ZoneScope zone_scope(isolate(), DELETE_ON_EXIT); |
| 4183 ZoneList<Handle<Object> > elements(4); | 4183 ZoneList<Handle<Object> > elements(4); |
| 4184 | 4184 |
| 4185 Token::Value token = scanner_.peek(); | 4185 Token::Value token = scanner_.peek(); |
| 4186 if (token == Token::RBRACK) { | 4186 if (token == Token::RBRACK) { |
| 4187 scanner_.Next(); | 4187 scanner_.Next(); |
| 4188 } else { | 4188 } else { |
| 4189 if (StackLimitCheck(isolate()).HasOverflowed()) { | 4189 if (StackLimitCheck(isolate()).HasOverflowed()) { |
| 4190 stack_overflow_ = true; | 4190 stack_overflow_ = true; |
| 4191 return Handle<Object>::null(); | 4191 return Handle<Object>::null(); |
| 4192 } | 4192 } |
| (...skipping 990 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5183 info->is_global(), | 5183 info->is_global(), |
| 5184 info->StrictMode()); | 5184 info->StrictMode()); |
| 5185 } | 5185 } |
| 5186 } | 5186 } |
| 5187 | 5187 |
| 5188 info->SetFunction(result); | 5188 info->SetFunction(result); |
| 5189 return (result != NULL); | 5189 return (result != NULL); |
| 5190 } | 5190 } |
| 5191 | 5191 |
| 5192 } } // namespace v8::internal | 5192 } } // namespace v8::internal |
| OLD | NEW |