Work around two ASSERTs that we're hitting now that DEBUG is #defined again

R=danno@chromium.org

Review URL: https://codereview.chromium.org/49433002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 5b5f2e59
...@@ -665,66 +665,70 @@ static Handle<SharedFunctionInfo> MakeFunctionInfo(CompilationInfo* info) { ...@@ -665,66 +665,70 @@ static Handle<SharedFunctionInfo> MakeFunctionInfo(CompilationInfo* info) {
} }
} }
// Measure how long it takes to do the compilation; only take the
// rest of the function into account to avoid overlap with the
// parsing statistics.
HistogramTimer* rate = info->is_eval()
? info->isolate()->counters()->compile_eval()
: info->isolate()->counters()->compile();
HistogramTimerScope timer(rate);
// Compile the code.
FunctionLiteral* lit = info->function(); FunctionLiteral* lit = info->function();
LiveEditFunctionTracker live_edit_tracker(isolate, lit); LiveEditFunctionTracker live_edit_tracker(isolate, lit);
if (!MakeCode(info)) { Handle<SharedFunctionInfo> result;
if (!isolate->has_pending_exception()) isolate->StackOverflow(); {
return Handle<SharedFunctionInfo>::null(); // Measure how long it takes to do the compilation; only take the
} // rest of the function into account to avoid overlap with the
// parsing statistics.
HistogramTimer* rate = info->is_eval()
? info->isolate()->counters()->compile_eval()
: info->isolate()->counters()->compile();
HistogramTimerScope timer(rate);
// Allocate function. // Compile the code.
ASSERT(!info->code().is_null()); if (!MakeCode(info)) {
Handle<SharedFunctionInfo> result = if (!isolate->has_pending_exception()) isolate->StackOverflow();
isolate->factory()->NewSharedFunctionInfo( return Handle<SharedFunctionInfo>::null();
lit->name(), }
lit->materialized_literal_count(),
lit->is_generator(), // Allocate function.
info->code(), ASSERT(!info->code().is_null());
ScopeInfo::Create(info->scope(), info->zone())); result =
isolate->factory()->NewSharedFunctionInfo(
ASSERT_EQ(RelocInfo::kNoPosition, lit->function_token_position()); lit->name(),
Compiler::SetFunctionInfo(result, lit, true, script); lit->materialized_literal_count(),
lit->is_generator(),
if (script->name()->IsString()) { info->code(),
PROFILE(isolate, CodeCreateEvent( ScopeInfo::Create(info->scope(), info->zone()));
info->is_eval()
? Logger::EVAL_TAG
: Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script),
*info->code(),
*result,
info,
String::cast(script->name())));
GDBJIT(AddCode(Handle<String>(String::cast(script->name())),
script,
info->code(),
info));
} else {
PROFILE(isolate, CodeCreateEvent(
info->is_eval()
? Logger::EVAL_TAG
: Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script),
*info->code(),
*result,
info,
isolate->heap()->empty_string()));
GDBJIT(AddCode(Handle<String>(), script, info->code(), info));
}
// Hint to the runtime system used when allocating space for initial ASSERT_EQ(RelocInfo::kNoPosition, lit->function_token_position());
// property space by setting the expected number of properties for Compiler::SetFunctionInfo(result, lit, true, script);
// the instances of the function.
SetExpectedNofPropertiesFromEstimate(result, lit->expected_property_count());
script->set_compilation_state(Script::COMPILATION_STATE_COMPILED); if (script->name()->IsString()) {
PROFILE(isolate, CodeCreateEvent(
info->is_eval()
? Logger::EVAL_TAG
: Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script),
*info->code(),
*result,
info,
String::cast(script->name())));
GDBJIT(AddCode(Handle<String>(String::cast(script->name())),
script,
info->code(),
info));
} else {
PROFILE(isolate, CodeCreateEvent(
info->is_eval()
? Logger::EVAL_TAG
: Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script),
*info->code(),
*result,
info,
isolate->heap()->empty_string()));
GDBJIT(AddCode(Handle<String>(), script, info->code(), info));
}
// Hint to the runtime system used when allocating space for initial
// property space by setting the expected number of properties for
// the instances of the function.
SetExpectedNofPropertiesFromEstimate(result,
lit->expected_property_count());
script->set_compilation_state(Script::COMPILATION_STATE_COMPILED);
}
#ifdef ENABLE_DEBUGGER_SUPPORT #ifdef ENABLE_DEBUGGER_SUPPORT
// Notify debugger // Notify debugger
......
...@@ -1667,7 +1667,9 @@ int JSObject::GetHeaderSize() { ...@@ -1667,7 +1667,9 @@ int JSObject::GetHeaderSize() {
case JS_MESSAGE_OBJECT_TYPE: case JS_MESSAGE_OBJECT_TYPE:
return JSMessageObject::kSize; return JSMessageObject::kSize;
default: default:
UNREACHABLE(); // TODO(jkummerow): Re-enable this. Blink currently hits this
// from its CustomElementConstructorBuilder.
// UNREACHABLE();
return 0; return 0;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment