Index: src/full-codegen.cc |
=================================================================== |
--- src/full-codegen.cc (revision 9531) |
+++ src/full-codegen.cc (working copy) |
@@ -244,11 +244,6 @@ |
} |
-void BreakableStatementChecker::VisitCompareToNull(CompareToNull* expr) { |
- Visit(expr->expression()); |
-} |
- |
- |
void BreakableStatementChecker::VisitCompareOperation(CompareOperation* expr) { |
Visit(expr->left()); |
Visit(expr->right()); |
@@ -291,8 +286,10 @@ |
code->set_optimizable(info->IsOptimizable()); |
cgen.PopulateDeoptimizationData(code); |
code->set_has_deoptimization_support(info->HasDeoptimizationSupport()); |
+#ifdef ENABLE_DEBUGGER_SUPPORT |
code->set_has_debug_break_slots( |
info->isolate()->debugger()->IsDebuggerActive()); |
+#endif // ENABLE_DEBUGGER_SUPPORT |
code->set_allow_osr_at_loop_nesting_level(0); |
code->set_stack_check_table_offset(table_offset); |
CodeGenerator::PrintCode(code, info); |
@@ -1321,22 +1318,24 @@ |
} |
-bool FullCodeGenerator::TryLiteralCompare(CompareOperation* compare, |
- Label* if_true, |
- Label* if_false, |
- Label* fall_through) { |
- Expression *expr; |
+bool FullCodeGenerator::TryLiteralCompare(CompareOperation* expr) { |
+ Expression *sub_expr; |
Handle<String> check; |
- if (compare->IsLiteralCompareTypeof(&expr, &check)) { |
- EmitLiteralCompareTypeof(expr, check, if_true, if_false, fall_through); |
+ if (expr->IsLiteralCompareTypeof(&sub_expr, &check)) { |
+ EmitLiteralCompareTypeof(sub_expr, check); |
return true; |
} |
- if (compare->IsLiteralCompareUndefined(&expr)) { |
- EmitLiteralCompareUndefined(expr, if_true, if_false, fall_through); |
+ if (expr->IsLiteralCompareUndefined(&sub_expr)) { |
+ EmitLiteralCompareNil(expr, sub_expr, kUndefinedValue); |
return true; |
} |
+ if (expr->IsLiteralCompareNull(&sub_expr)) { |
+ EmitLiteralCompareNil(expr, sub_expr, kNullValue); |
+ return true; |
+ } |
+ |
return false; |
} |