Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Side by Side Diff: src/parser.cc

Issue 381613003: Parser / Scanner: Minor refactorings to make streaming scripts work easier. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/scanner-character-streams.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/api.h" 7 #include "src/api.h"
8 #include "src/ast.h" 8 #include "src/ast.h"
9 #include "src/base/platform/platform.h" 9 #include "src/base/platform/platform.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 841 matching lines...) Expand 10 before | Expand all | Expand 10 after
852 852
853 853
854 FunctionLiteral* Parser::DoParseProgram(CompilationInfo* info, 854 FunctionLiteral* Parser::DoParseProgram(CompilationInfo* info,
855 Handle<String> source) { 855 Handle<String> source) {
856 ASSERT(scope_ == NULL); 856 ASSERT(scope_ == NULL);
857 ASSERT(target_stack_ == NULL); 857 ASSERT(target_stack_ == NULL);
858 858
859 FunctionLiteral* result = NULL; 859 FunctionLiteral* result = NULL;
860 { Scope* scope = NewScope(scope_, GLOBAL_SCOPE); 860 { Scope* scope = NewScope(scope_, GLOBAL_SCOPE);
861 info->SetGlobalScope(scope); 861 info->SetGlobalScope(scope);
862 if (!info->context().is_null()) { 862 if (!info->context().is_null() && !info->context()->IsNativeContext()) {
863 scope = Scope::DeserializeScopeChain(*info->context(), scope, zone()); 863 scope = Scope::DeserializeScopeChain(*info->context(), scope, zone());
864 // The Scope is backed up by ScopeInfo (which is in the V8 heap); this 864 // The Scope is backed up by ScopeInfo (which is in the V8 heap); this
865 // means the Parser cannot operate independent of the V8 heap. Tell the 865 // means the Parser cannot operate independent of the V8 heap. Tell the
866 // string table to internalize strings and values right after they're 866 // string table to internalize strings and values right after they're
867 // created. 867 // created.
868 ast_value_factory_->Internalize(isolate()); 868 ast_value_factory_->Internalize(isolate());
869 } 869 }
870 original_scope_ = scope; 870 original_scope_ = scope;
871 if (info->is_eval()) { 871 if (info->is_eval()) {
872 if (!scope->is_global_scope() || info->strict_mode() == STRICT) { 872 if (!scope->is_global_scope() || info->strict_mode() == STRICT) {
(...skipping 4013 matching lines...) Expand 10 before | Expand all | Expand 10 after
4886 info()->SetAstValueFactory(ast_value_factory_); 4886 info()->SetAstValueFactory(ast_value_factory_);
4887 } 4887 }
4888 ast_value_factory_ = NULL; 4888 ast_value_factory_ = NULL;
4889 4889
4890 InternalizeUseCounts(); 4890 InternalizeUseCounts();
4891 4891
4892 return (result != NULL); 4892 return (result != NULL);
4893 } 4893 }
4894 4894
4895 } } // namespace v8::internal 4895 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | src/scanner-character-streams.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698