Index: src/runtime/runtime-internal.cc |
diff --git a/src/runtime/runtime-internal.cc b/src/runtime/runtime-internal.cc |
index 34b844a8984aa9dbbc1ec17e7d48e9b9f633079c..b02faf3a978775ea95c2ed755d014540c5442f61 100644 |
--- a/src/runtime/runtime-internal.cc |
+++ b/src/runtime/runtime-internal.cc |
@@ -377,61 +377,11 @@ RUNTIME_FUNCTION(Runtime_IncrementStatsCounter) { |
} |
-namespace { |
- |
-bool ComputeLocation(Isolate* isolate, MessageLocation* target) { |
- JavaScriptFrameIterator it(isolate); |
- if (!it.done()) { |
- JavaScriptFrame* frame = it.frame(); |
- JSFunction* fun = frame->function(); |
- Object* script = fun->shared()->script(); |
- if (script->IsScript() && |
- !(Script::cast(script)->source()->IsUndefined())) { |
- Handle<Script> casted_script(Script::cast(script)); |
- // Compute the location from the function and the relocation info of the |
- // baseline code. For optimized code this will use the deoptimization |
- // information to get canonical location information. |
- List<FrameSummary> frames(FLAG_max_inlining_levels + 1); |
- it.frame()->Summarize(&frames); |
- FrameSummary& summary = frames.last(); |
- int pos = summary.abstract_code()->SourcePosition(summary.code_offset()); |
- *target = MessageLocation(casted_script, pos, pos + 1, handle(fun)); |
- return true; |
- } |
- } |
- return false; |
-} |
- |
- |
-Handle<String> RenderCallSite(Isolate* isolate, Handle<Object> object) { |
- MessageLocation location; |
- if (ComputeLocation(isolate, &location)) { |
- Zone zone; |
- base::SmartPointer<ParseInfo> info( |
- location.function()->shared()->is_function() |
- ? new ParseInfo(&zone, location.function()) |
- : new ParseInfo(&zone, location.script())); |
- if (Parser::ParseStatic(info.get())) { |
- CallPrinter printer(isolate, location.function()->shared()->IsBuiltin()); |
- const char* string = printer.Print(info->literal(), location.start_pos()); |
- if (strlen(string) > 0) { |
- return isolate->factory()->NewStringFromAsciiChecked(string); |
- } |
- } else { |
- isolate->clear_pending_exception(); |
- } |
- } |
- return Object::TypeOf(isolate, object); |
-} |
- |
-} // namespace |
- |
- |
RUNTIME_FUNCTION(Runtime_ThrowCalledNonCallable) { |
HandleScope scope(isolate); |
DCHECK_EQ(1, args.length()); |
CONVERT_ARG_HANDLE_CHECKED(Object, object, 0); |
- Handle<String> callsite = RenderCallSite(isolate, object); |
+ Handle<String> callsite = Runtime::RenderCallSite(isolate, object); |
THROW_NEW_ERROR_RETURN_FAILURE( |
isolate, NewTypeError(MessageTemplate::kCalledNonCallable, callsite)); |
} |
@@ -441,7 +391,7 @@ RUNTIME_FUNCTION(Runtime_ThrowConstructedNonConstructable) { |
HandleScope scope(isolate); |
DCHECK_EQ(1, args.length()); |
CONVERT_ARG_HANDLE_CHECKED(Object, object, 0); |
- Handle<String> callsite = RenderCallSite(isolate, object); |
+ Handle<String> callsite = Runtime::RenderCallSite(isolate, object); |
THROW_NEW_ERROR_RETURN_FAILURE( |
isolate, NewTypeError(MessageTemplate::kNotConstructor, callsite)); |
} |