| Index: src/full-codegen.cc
|
| diff --git a/src/full-codegen.cc b/src/full-codegen.cc
|
| index a6a16759e2a5280f9b96f7ebbc7fd223332f4125..0297f88f581112500e726f32de41e0bd5421f54b 100644
|
| --- a/src/full-codegen.cc
|
| +++ b/src/full-codegen.cc
|
| @@ -308,7 +308,7 @@ bool FullCodeGenerator::MakeCode(CompilationInfo* info) {
|
| FullCodeGenerator cgen(&masm, info);
|
| cgen.Generate();
|
| if (cgen.HasStackOverflow()) {
|
| - ASSERT(!isolate->has_pending_exception());
|
| + DCHECK(!isolate->has_pending_exception());
|
| return false;
|
| }
|
| unsigned table_offset = cgen.EmitBackEdgeTable();
|
| @@ -363,7 +363,7 @@ void FullCodeGenerator::EnsureSlotContainsAllocationSite(int slot) {
|
|
|
| void FullCodeGenerator::PopulateDeoptimizationData(Handle<Code> code) {
|
| // Fill in the deoptimization information.
|
| - ASSERT(info_->HasDeoptimizationSupport() || bailout_entries_.is_empty());
|
| + DCHECK(info_->HasDeoptimizationSupport() || bailout_entries_.is_empty());
|
| if (!info_->HasDeoptimizationSupport()) return;
|
| int length = bailout_entries_.length();
|
| Handle<DeoptimizationOutputData> data =
|
| @@ -379,7 +379,7 @@ void FullCodeGenerator::PopulateDeoptimizationData(Handle<Code> code) {
|
| void FullCodeGenerator::PopulateTypeFeedbackInfo(Handle<Code> code) {
|
| Handle<TypeFeedbackInfo> info = isolate()->factory()->NewTypeFeedbackInfo();
|
| info->set_ic_total_count(ic_total_count_);
|
| - ASSERT(!isolate()->heap()->InNewSpace(*info));
|
| + DCHECK(!isolate()->heap()->InNewSpace(*info));
|
| code->set_type_feedback_info(*info);
|
| }
|
|
|
| @@ -429,7 +429,7 @@ void FullCodeGenerator::RecordJSReturnSite(Call* call) {
|
| #ifdef DEBUG
|
| // In debug builds, mark the return so we can verify that this function
|
| // was called.
|
| - ASSERT(!call->return_is_recorded_);
|
| + DCHECK(!call->return_is_recorded_);
|
| call->return_is_recorded_ = true;
|
| #endif
|
| }
|
| @@ -441,10 +441,10 @@ void FullCodeGenerator::PrepareForBailoutForId(BailoutId id, State state) {
|
| if (!info_->HasDeoptimizationSupport()) return;
|
| unsigned pc_and_state =
|
| StateField::encode(state) | PcField::encode(masm_->pc_offset());
|
| - ASSERT(Smi::IsValid(pc_and_state));
|
| + DCHECK(Smi::IsValid(pc_and_state));
|
| #ifdef DEBUG
|
| for (int i = 0; i < bailout_entries_.length(); ++i) {
|
| - ASSERT(bailout_entries_[i].id != id);
|
| + DCHECK(bailout_entries_[i].id != id);
|
| }
|
| #endif
|
| BailoutEntry entry = { id, pc_and_state };
|
| @@ -454,8 +454,8 @@ void FullCodeGenerator::PrepareForBailoutForId(BailoutId id, State state) {
|
|
|
| void FullCodeGenerator::RecordBackEdge(BailoutId ast_id) {
|
| // The pc offset does not need to be encoded and packed together with a state.
|
| - ASSERT(masm_->pc_offset() > 0);
|
| - ASSERT(loop_depth() > 0);
|
| + DCHECK(masm_->pc_offset() > 0);
|
| + DCHECK(loop_depth() > 0);
|
| uint8_t depth = Min(loop_depth(), Code::kMaxLoopNestingMarker);
|
| BackEdgeEntry entry =
|
| { ast_id, static_cast<unsigned>(masm_->pc_offset()), depth };
|
| @@ -571,7 +571,7 @@ void FullCodeGenerator::DoTest(const TestContext* context) {
|
|
|
|
|
| void FullCodeGenerator::AllocateModules(ZoneList<Declaration*>* declarations) {
|
| - ASSERT(scope_->is_global_scope());
|
| + DCHECK(scope_->is_global_scope());
|
|
|
| for (int i = 0; i < declarations->length(); i++) {
|
| ModuleDeclaration* declaration = declarations->at(i)->AsModuleDeclaration();
|
| @@ -581,12 +581,12 @@ void FullCodeGenerator::AllocateModules(ZoneList<Declaration*>* declarations) {
|
| Comment cmnt(masm_, "[ Link nested modules");
|
| Scope* scope = module->body()->scope();
|
| Interface* interface = scope->interface();
|
| - ASSERT(interface->IsModule() && interface->IsFrozen());
|
| + DCHECK(interface->IsModule() && interface->IsFrozen());
|
|
|
| interface->Allocate(scope->module_var()->index());
|
|
|
| // Set up module context.
|
| - ASSERT(scope->interface()->Index() >= 0);
|
| + DCHECK(scope->interface()->Index() >= 0);
|
| __ Push(Smi::FromInt(scope->interface()->Index()));
|
| __ Push(scope->GetScopeInfo());
|
| __ CallRuntime(Runtime::kPushModuleContext, 2);
|
| @@ -678,7 +678,7 @@ void FullCodeGenerator::VisitDeclarations(
|
| // This is a scope hosting modules. Allocate a descriptor array to pass
|
| // to the runtime for initialization.
|
| Comment cmnt(masm_, "[ Allocate modules");
|
| - ASSERT(scope_->is_global_scope());
|
| + DCHECK(scope_->is_global_scope());
|
| modules_ =
|
| isolate()->factory()->NewFixedArray(scope_->num_modules(), TENURED);
|
| module_index_ = 0;
|
| @@ -692,7 +692,7 @@ void FullCodeGenerator::VisitDeclarations(
|
|
|
| if (scope_->num_modules() != 0) {
|
| // Initialize modules from descriptor array.
|
| - ASSERT(module_index_ == modules_->length());
|
| + DCHECK(module_index_ == modules_->length());
|
| DeclareModules(modules_);
|
| modules_ = saved_modules;
|
| module_index_ = saved_module_index;
|
| @@ -721,12 +721,12 @@ void FullCodeGenerator::VisitModuleLiteral(ModuleLiteral* module) {
|
| Comment cmnt(masm_, "[ ModuleLiteral");
|
| SetStatementPosition(block);
|
|
|
| - ASSERT(!modules_.is_null());
|
| - ASSERT(module_index_ < modules_->length());
|
| + DCHECK(!modules_.is_null());
|
| + DCHECK(module_index_ < modules_->length());
|
| int index = module_index_++;
|
|
|
| // Set up module context.
|
| - ASSERT(interface->Index() >= 0);
|
| + DCHECK(interface->Index() >= 0);
|
| __ Push(Smi::FromInt(interface->Index()));
|
| __ Push(Smi::FromInt(0));
|
| __ CallRuntime(Runtime::kPushModuleContext, 2);
|
| @@ -767,9 +767,9 @@ void FullCodeGenerator::VisitModuleUrl(ModuleUrl* module) {
|
| Scope* scope = module->body()->scope();
|
| Interface* interface = scope_->interface();
|
|
|
| - ASSERT(interface->IsModule() && interface->IsFrozen());
|
| - ASSERT(!modules_.is_null());
|
| - ASSERT(module_index_ < modules_->length());
|
| + DCHECK(interface->IsModule() && interface->IsFrozen());
|
| + DCHECK(!modules_.is_null());
|
| + DCHECK(module_index_ < modules_->length());
|
| interface->Allocate(scope->module_var()->index());
|
| int index = module_index_++;
|
|
|
| @@ -780,7 +780,7 @@ void FullCodeGenerator::VisitModuleUrl(ModuleUrl* module) {
|
|
|
|
|
| int FullCodeGenerator::DeclareGlobalsFlags() {
|
| - ASSERT(DeclareGlobalsStrictMode::is_valid(strict_mode()));
|
| + DCHECK(DeclareGlobalsStrictMode::is_valid(strict_mode()));
|
| return DeclareGlobalsEvalFlag::encode(is_eval()) |
|
| DeclareGlobalsNativeFlag::encode(is_native()) |
|
| DeclareGlobalsStrictMode::encode(strict_mode());
|
| @@ -868,8 +868,8 @@ FullCodeGenerator::InlineFunctionGenerator
|
| FullCodeGenerator::FindInlineFunctionGenerator(Runtime::FunctionId id) {
|
| int lookup_index =
|
| static_cast<int>(id) - static_cast<int>(Runtime::kFirstInlineFunction);
|
| - ASSERT(lookup_index >= 0);
|
| - ASSERT(static_cast<size_t>(lookup_index) <
|
| + DCHECK(lookup_index >= 0);
|
| + DCHECK(static_cast<size_t>(lookup_index) <
|
| ARRAY_SIZE(kInlineFunctionGenerators));
|
| return kInlineFunctionGenerators[lookup_index];
|
| }
|
| @@ -877,8 +877,8 @@ FullCodeGenerator::InlineFunctionGenerator
|
|
|
| void FullCodeGenerator::EmitInlineRuntimeCall(CallRuntime* expr) {
|
| const Runtime::Function* function = expr->function();
|
| - ASSERT(function != NULL);
|
| - ASSERT(function->intrinsic_type == Runtime::INLINE);
|
| + DCHECK(function != NULL);
|
| + DCHECK(function->intrinsic_type == Runtime::INLINE);
|
| InlineFunctionGenerator generator =
|
| FindInlineFunctionGenerator(function->function_id);
|
| ((*this).*(generator))(expr);
|
| @@ -887,14 +887,14 @@ void FullCodeGenerator::EmitInlineRuntimeCall(CallRuntime* expr) {
|
|
|
| void FullCodeGenerator::EmitGeneratorNext(CallRuntime* expr) {
|
| ZoneList<Expression*>* args = expr->arguments();
|
| - ASSERT(args->length() == 2);
|
| + DCHECK(args->length() == 2);
|
| EmitGeneratorResume(args->at(0), args->at(1), JSGeneratorObject::NEXT);
|
| }
|
|
|
|
|
| void FullCodeGenerator::EmitGeneratorThrow(CallRuntime* expr) {
|
| ZoneList<Expression*>* args = expr->arguments();
|
| - ASSERT(args->length() == 2);
|
| + DCHECK(args->length() == 2);
|
| EmitGeneratorResume(args->at(0), args->at(1), JSGeneratorObject::THROW);
|
| }
|
|
|
| @@ -992,7 +992,7 @@ void FullCodeGenerator::VisitLogicalExpression(BinaryOperation* expr) {
|
| PrepareForBailoutForId(right_id, NO_REGISTERS);
|
|
|
| } else {
|
| - ASSERT(context()->IsEffect());
|
| + DCHECK(context()->IsEffect());
|
| Label eval_right;
|
| if (is_logical_and) {
|
| VisitForControl(left, &eval_right, &done, &eval_right);
|
| @@ -1041,7 +1041,7 @@ void FullCodeGenerator::VisitBlock(Block* stmt) {
|
| PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
|
| } else {
|
| scope_ = stmt->scope();
|
| - ASSERT(!scope_->is_module_scope());
|
| + DCHECK(!scope_->is_module_scope());
|
| { Comment cmnt(masm_, "[ Extend block context");
|
| __ Push(scope_->GetScopeInfo());
|
| PushFunctionArgumentForContextAllocation();
|
| @@ -1374,7 +1374,7 @@ void FullCodeGenerator::VisitTryCatchStatement(TryCatchStatement* stmt) {
|
|
|
| Scope* saved_scope = scope();
|
| scope_ = stmt->scope();
|
| - ASSERT(scope_->declarations()->is_empty());
|
| + DCHECK(scope_->declarations()->is_empty());
|
| { WithOrCatch catch_body(this);
|
| Visit(stmt->catch_block());
|
| }
|
| @@ -1530,7 +1530,7 @@ void FullCodeGenerator::VisitNativeFunctionLiteral(
|
| v8::Handle<v8::FunctionTemplate> fun_template =
|
| expr->extension()->GetNativeFunctionTemplate(
|
| reinterpret_cast<v8::Isolate*>(isolate()), v8::Utils::ToLocal(name));
|
| - ASSERT(!fun_template.IsEmpty());
|
| + DCHECK(!fun_template.IsEmpty());
|
|
|
| // Instantiate the function and create a shared function info from it.
|
| Handle<JSFunction> fun = Utils::OpenHandle(*fun_template->GetFunction());
|
| @@ -1609,7 +1609,7 @@ void BackEdgeTable::Patch(Isolate* isolate, Code* unoptimized) {
|
| BackEdgeTable back_edges(unoptimized, &no_gc);
|
| for (uint32_t i = 0; i < back_edges.length(); i++) {
|
| if (static_cast<int>(back_edges.loop_depth(i)) == loop_nesting_level) {
|
| - ASSERT_EQ(INTERRUPT, GetBackEdgeState(isolate,
|
| + DCHECK_EQ(INTERRUPT, GetBackEdgeState(isolate,
|
| unoptimized,
|
| back_edges.pc(i)));
|
| PatchAt(unoptimized, back_edges.pc(i), ON_STACK_REPLACEMENT, patch);
|
| @@ -1617,7 +1617,7 @@ void BackEdgeTable::Patch(Isolate* isolate, Code* unoptimized) {
|
| }
|
|
|
| unoptimized->set_allow_osr_at_loop_nesting_level(loop_nesting_level);
|
| - ASSERT(Verify(isolate, unoptimized));
|
| + DCHECK(Verify(isolate, unoptimized));
|
| }
|
|
|
|
|
| @@ -1631,7 +1631,7 @@ void BackEdgeTable::Revert(Isolate* isolate, Code* unoptimized) {
|
| BackEdgeTable back_edges(unoptimized, &no_gc);
|
| for (uint32_t i = 0; i < back_edges.length(); i++) {
|
| if (static_cast<int>(back_edges.loop_depth(i)) <= loop_nesting_level) {
|
| - ASSERT_NE(INTERRUPT, GetBackEdgeState(isolate,
|
| + DCHECK_NE(INTERRUPT, GetBackEdgeState(isolate,
|
| unoptimized,
|
| back_edges.pc(i)));
|
| PatchAt(unoptimized, back_edges.pc(i), INTERRUPT, patch);
|
| @@ -1640,7 +1640,7 @@ void BackEdgeTable::Revert(Isolate* isolate, Code* unoptimized) {
|
|
|
| unoptimized->set_allow_osr_at_loop_nesting_level(0);
|
| // Assert that none of the back edges are patched anymore.
|
| - ASSERT(Verify(isolate, unoptimized));
|
| + DCHECK(Verify(isolate, unoptimized));
|
| }
|
|
|
|
|
|
|