| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index c36d453d03e0cb7c8b72dd36ed9aeb379a1b5698..352ca7c744465d5f90461280c81fda1c463f97a9 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -13429,50 +13429,21 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CollectStackTrace) {
|
| }
|
|
|
|
|
| -// Mark a function to recognize when called after GC to format the stack trace.
|
| -RUNTIME_FUNCTION(MaybeObject*, Runtime_MarkOneShotGetter) {
|
| - HandleScope scope(isolate);
|
| - ASSERT_EQ(args.length(), 1);
|
| - CONVERT_ARG_HANDLE_CHECKED(JSFunction, fun, 0);
|
| - Handle<String> key = isolate->factory()->hidden_stack_trace_string();
|
| - JSObject::SetHiddenProperty(fun, key, key);
|
| - return *fun;
|
| -}
|
| -
|
| -
|
| -// Retrieve the stack trace. This could be the raw stack trace collected
|
| -// on stack overflow or the already formatted stack trace string.
|
| -RUNTIME_FUNCTION(MaybeObject*, Runtime_GetOverflowedStackTrace) {
|
| +// Retrieve the stack trace. This is the raw stack trace that yet has to
|
| +// be formatted. Since we only need this once, clear it afterwards.
|
| +RUNTIME_FUNCTION(MaybeObject*, Runtime_GetAndClearOverflowedStackTrace) {
|
| HandleScope scope(isolate);
|
| ASSERT_EQ(args.length(), 1);
|
| CONVERT_ARG_CHECKED(JSObject, error_object, 0);
|
| String* key = isolate->heap()->hidden_stack_trace_string();
|
| Object* result = error_object->GetHiddenProperty(key);
|
| - if (result->IsTheHole()) result = isolate->heap()->undefined_value();
|
| - RUNTIME_ASSERT(result->IsJSArray() ||
|
| - result->IsString() ||
|
| - result->IsUndefined());
|
| + if (result->IsTheHole()) return isolate->heap()->undefined_value();
|
| + RUNTIME_ASSERT(result->IsJSArray() || result->IsUndefined());
|
| + error_object->DeleteHiddenProperty(key);
|
| return result;
|
| }
|
|
|
|
|
| -// Set or clear the stack trace attached to an stack overflow error object.
|
| -RUNTIME_FUNCTION(MaybeObject*, Runtime_SetOverflowedStackTrace) {
|
| - HandleScope scope(isolate);
|
| - ASSERT_EQ(args.length(), 2);
|
| - CONVERT_ARG_HANDLE_CHECKED(JSObject, error_object, 0);
|
| - CONVERT_ARG_HANDLE_CHECKED(HeapObject, value, 1);
|
| - Handle<String> key = isolate->factory()->hidden_stack_trace_string();
|
| - if (value->IsUndefined()) {
|
| - error_object->DeleteHiddenProperty(*key);
|
| - } else {
|
| - RUNTIME_ASSERT(value->IsString());
|
| - JSObject::SetHiddenProperty(error_object, key, value);
|
| - }
|
| - return *error_object;
|
| -}
|
| -
|
| -
|
| // Returns V8 version as a string.
|
| RUNTIME_FUNCTION(MaybeObject*, Runtime_GetV8Version) {
|
| SealHandleScope shs(isolate);
|
|
|