diff options
| author | Leon Clarke <leonclarke@google.com> | 2010-06-03 12:02:55 +0100 |
|---|---|---|
| committer | Leon Clarke <leonclarke@google.com> | 2010-06-03 12:05:35 +0100 |
| commit | f7060e27768c550ace7ec48ad8c093466db52dfa (patch) | |
| tree | 43a297e3fcc3fd81c7637fcbe8b31b3d02fd337d /src/full-codegen.cc | |
| parent | f4f2cc060fdf724f592c425cced19bc9a3fc7e40 (diff) | |
| download | android_external_v8-f7060e27768c550ace7ec48ad8c093466db52dfa.tar.gz android_external_v8-f7060e27768c550ace7ec48ad8c093466db52dfa.tar.bz2 android_external_v8-f7060e27768c550ace7ec48ad8c093466db52dfa.zip | |
Update V8 to r4730 as required by WebKit r60469
Diffstat (limited to 'src/full-codegen.cc')
| -rw-r--r-- | src/full-codegen.cc | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/full-codegen.cc b/src/full-codegen.cc index 699a1e97..2ccbca87 100644 --- a/src/full-codegen.cc +++ b/src/full-codegen.cc @@ -760,11 +760,6 @@ void FullCodeGenerator::VisitWithExitStatement(WithExitStatement* stmt) { } -void FullCodeGenerator::VisitSwitchStatement(SwitchStatement* stmt) { - UNREACHABLE(); -} - - void FullCodeGenerator::VisitDoWhileStatement(DoWhileStatement* stmt) { Comment cmnt(masm_, "[ DoWhileStatement"); SetStatementPosition(stmt); @@ -810,6 +805,7 @@ void FullCodeGenerator::VisitWhileStatement(WhileStatement* stmt) { Visit(stmt->body()); __ bind(loop_statement.continue_target()); + // Check stack before looping. __ StackLimitCheck(&stack_limit_hit); __ bind(&stack_check_success); @@ -872,11 +868,6 @@ void FullCodeGenerator::VisitForStatement(ForStatement* stmt) { } -void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) { - UNREACHABLE(); -} - - void FullCodeGenerator::VisitTryCatchStatement(TryCatchStatement* stmt) { Comment cmnt(masm_, "[ TryCatchStatement"); SetStatementPosition(stmt); @@ -995,12 +986,6 @@ void FullCodeGenerator::VisitDebuggerStatement(DebuggerStatement* stmt) { } -void FullCodeGenerator::VisitSharedFunctionInfoLiteral( - SharedFunctionInfoLiteral* expr) { - UNREACHABLE(); -} - - void FullCodeGenerator::VisitConditional(Conditional* expr) { Comment cmnt(masm_, "[ Conditional"); Label true_case, false_case, done; @@ -1034,6 +1019,24 @@ void FullCodeGenerator::VisitLiteral(Literal* expr) { } +void FullCodeGenerator::VisitFunctionLiteral(FunctionLiteral* expr) { + Comment cmnt(masm_, "[ FunctionLiteral"); + + // Build the function boilerplate and instantiate it. + Handle<SharedFunctionInfo> function_info = + Compiler::BuildFunctionInfo(expr, script(), this); + if (HasStackOverflow()) return; + EmitNewClosure(function_info); +} + + +void FullCodeGenerator::VisitSharedFunctionInfoLiteral( + SharedFunctionInfoLiteral* expr) { + Comment cmnt(masm_, "[ SharedFunctionInfoLiteral"); + EmitNewClosure(expr->shared_function_info()); +} + + void FullCodeGenerator::VisitCatchExtensionObject(CatchExtensionObject* expr) { // Call runtime routine to allocate the catch extension object and // assign the exception value to the catch variable. |
