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

Side by Side Diff: src/scopeinfo.cc

Issue 868883002: Remove the dependency of Zone on Isolate (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix compilation issues Created 5 years, 11 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
« no previous file with comments | « src/runtime/runtime-internal.cc ('k') | src/scopes.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 <stdlib.h> 5 #include <stdlib.h>
6 6
7 #include "src/v8.h" 7 #include "src/v8.h"
8 8
9 #include "src/scopeinfo.h" 9 #include "src/scopeinfo.h"
10 #include "src/scopes.h" 10 #include "src/scopes.h"
11 11
12 namespace v8 { 12 namespace v8 {
13 namespace internal { 13 namespace internal {
14 14
15 15
16 Handle<ScopeInfo> ScopeInfo::Create(Scope* scope, Zone* zone) { 16 Handle<ScopeInfo> ScopeInfo::Create(Isolate* isolate, Zone* zone,
17 Scope* scope) {
17 // Collect stack and context locals. 18 // Collect stack and context locals.
18 ZoneList<Variable*> stack_locals(scope->StackLocalCount(), zone); 19 ZoneList<Variable*> stack_locals(scope->StackLocalCount(), zone);
19 ZoneList<Variable*> context_locals(scope->ContextLocalCount(), zone); 20 ZoneList<Variable*> context_locals(scope->ContextLocalCount(), zone);
20 scope->CollectStackAndContextLocals(&stack_locals, &context_locals); 21 scope->CollectStackAndContextLocals(&stack_locals, &context_locals);
21 const int stack_local_count = stack_locals.length(); 22 const int stack_local_count = stack_locals.length();
22 const int context_local_count = context_locals.length(); 23 const int context_local_count = context_locals.length();
23 // Make sure we allocate the correct amount. 24 // Make sure we allocate the correct amount.
24 DCHECK(scope->StackLocalCount() == stack_local_count); 25 DCHECK(scope->StackLocalCount() == stack_local_count);
25 DCHECK(scope->ContextLocalCount() == context_local_count); 26 DCHECK(scope->ContextLocalCount() == context_local_count);
26 27
(...skipping 15 matching lines...) Expand all
42 function_name_info = NONE; 43 function_name_info = NONE;
43 function_variable_mode = VAR; 44 function_variable_mode = VAR;
44 } 45 }
45 46
46 const bool has_function_name = function_name_info != NONE; 47 const bool has_function_name = function_name_info != NONE;
47 const int parameter_count = scope->num_parameters(); 48 const int parameter_count = scope->num_parameters();
48 const int length = kVariablePartIndex 49 const int length = kVariablePartIndex
49 + parameter_count + stack_local_count + 2 * context_local_count 50 + parameter_count + stack_local_count + 2 * context_local_count
50 + (has_function_name ? 2 : 0); 51 + (has_function_name ? 2 : 0);
51 52
52 Factory* factory = zone->isolate()->factory(); 53 Factory* factory = isolate->factory();
53 Handle<ScopeInfo> scope_info = factory->NewScopeInfo(length); 54 Handle<ScopeInfo> scope_info = factory->NewScopeInfo(length);
54 55
55 // Encode the flags. 56 // Encode the flags.
56 int flags = ScopeTypeField::encode(scope->scope_type()) | 57 int flags = ScopeTypeField::encode(scope->scope_type()) |
57 CallsEvalField::encode(scope->calls_eval()) | 58 CallsEvalField::encode(scope->calls_eval()) |
58 StrictModeField::encode(scope->strict_mode()) | 59 StrictModeField::encode(scope->strict_mode()) |
59 FunctionVariableField::encode(function_name_info) | 60 FunctionVariableField::encode(function_name_info) |
60 FunctionVariableMode::encode(function_variable_mode) | 61 FunctionVariableMode::encode(function_variable_mode) |
61 AsmModuleField::encode(scope->asm_module()) | 62 AsmModuleField::encode(scope->asm_module()) |
62 AsmFunctionField::encode(scope->asm_function()); 63 AsmFunctionField::encode(scope->asm_function());
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 } else { 566 } else {
566 DCHECK(var->index() >= 0); 567 DCHECK(var->index() >= 0);
567 info->set_index(i, var->index()); 568 info->set_index(i, var->index());
568 } 569 }
569 } 570 }
570 DCHECK(i == info->length()); 571 DCHECK(i == info->length());
571 return info; 572 return info;
572 } 573 }
573 574
574 } } // namespace v8::internal 575 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/runtime/runtime-internal.cc ('k') | src/scopes.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698