MIPS: Split AST Declaration class, in preparation for new module declaration forms.
Port r10662 (c8054f6
).
Original commit message:
Turns Declaration into an abstract class, and introduces VariableDeclaration as a concrete subclass.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9395015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
8ac0c1cdf2
commit
f2715fe710
@ -295,11 +295,11 @@ void FullCodeGenerator::Generate(CompilationInfo* info) {
|
||||
// For named function expressions, declare the function name as a
|
||||
// constant.
|
||||
if (scope()->is_function_scope() && scope()->function() != NULL) {
|
||||
int ignored = 0;
|
||||
VariableProxy* proxy = scope()->function();
|
||||
ASSERT(proxy->var()->mode() == CONST ||
|
||||
proxy->var()->mode() == CONST_HARMONY);
|
||||
EmitDeclaration(proxy, proxy->var()->mode(), NULL, &ignored);
|
||||
ASSERT(proxy->var()->location() != Variable::UNALLOCATED);
|
||||
EmitDeclaration(proxy, proxy->var()->mode(), NULL);
|
||||
}
|
||||
VisitDeclarations(scope()->declarations());
|
||||
}
|
||||
@ -738,8 +738,7 @@ void FullCodeGenerator::PrepareForBailoutBeforeSplit(Expression* expr,
|
||||
|
||||
void FullCodeGenerator::EmitDeclaration(VariableProxy* proxy,
|
||||
VariableMode mode,
|
||||
FunctionLiteral* function,
|
||||
int* global_count) {
|
||||
FunctionLiteral* function) {
|
||||
// If it was not possible to allocate the variable at compile time, we
|
||||
// need to "declare" it at runtime to make sure it actually exists in the
|
||||
// local context.
|
||||
@ -748,7 +747,7 @@ void FullCodeGenerator::EmitDeclaration(VariableProxy* proxy,
|
||||
(mode == CONST || mode == CONST_HARMONY || mode == LET);
|
||||
switch (variable->location()) {
|
||||
case Variable::UNALLOCATED:
|
||||
++(*global_count);
|
||||
++global_count_;
|
||||
break;
|
||||
|
||||
case Variable::PARAMETER:
|
||||
@ -836,9 +835,6 @@ void FullCodeGenerator::EmitDeclaration(VariableProxy* proxy,
|
||||
}
|
||||
|
||||
|
||||
void FullCodeGenerator::VisitDeclaration(Declaration* decl) { }
|
||||
|
||||
|
||||
void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
|
||||
// Call the runtime to declare the globals.
|
||||
// The context is the first argument.
|
||||
|
Loading…
Reference in New Issue
Block a user