diff options
author | Trevor Norris <trev.norris@gmail.com> | 2013-03-18 13:49:34 -0700 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2013-03-20 01:11:01 +0100 |
commit | 83261e789eb903da39f279cb5a161611482e7df5 (patch) | |
tree | 4133b5ca9f53bed4365e1a94544a227d68a0cf12 /deps/v8/src/messages.cc | |
parent | a05f973f82d2be8527aad4c371d40d3c7e4c564e (diff) | |
download | android-node-v8-83261e789eb903da39f279cb5a161611482e7df5.tar.gz android-node-v8-83261e789eb903da39f279cb5a161611482e7df5.tar.bz2 android-node-v8-83261e789eb903da39f279cb5a161611482e7df5.zip |
deps: update v8 to 3.17.13
Diffstat (limited to 'deps/v8/src/messages.cc')
-rw-r--r-- | deps/v8/src/messages.cc | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/deps/v8/src/messages.cc b/deps/v8/src/messages.cc index a041770d12..de18a4b1aa 100644 --- a/deps/v8/src/messages.cc +++ b/deps/v8/src/messages.cc @@ -38,14 +38,15 @@ namespace internal { // If no message listeners have been registered this one is called // by default. -void MessageHandler::DefaultMessageReport(const MessageLocation* loc, +void MessageHandler::DefaultMessageReport(Isolate* isolate, + const MessageLocation* loc, Handle<Object> message_obj) { - SmartArrayPointer<char> str = GetLocalizedMessage(message_obj); + SmartArrayPointer<char> str = GetLocalizedMessage(isolate, message_obj); if (loc == NULL) { PrintF("%s\n", *str); } else { - HandleScope scope; - Handle<Object> data(loc->script()->name()); + HandleScope scope(isolate); + Handle<Object> data(loc->script()->name(), isolate); SmartArrayPointer<char> data_str; if (data->IsString()) data_str = Handle<String>::cast(data)->ToCString(DISALLOW_NULLS); @@ -61,7 +62,7 @@ Handle<JSMessageObject> MessageHandler::MakeMessageObject( Vector< Handle<Object> > args, Handle<String> stack_trace, Handle<JSArray> stack_frames) { - Handle<String> type_handle = FACTORY->LookupAsciiSymbol(type); + Handle<String> type_handle = FACTORY->InternalizeUtf8String(type); Handle<FixedArray> arguments_elements = FACTORY->NewFixedArray(args.length()); for (int i = 0; i < args.length(); i++) { @@ -112,7 +113,7 @@ void MessageHandler::ReportMessage(Isolate* isolate, if (isolate->has_pending_exception()) { isolate->pending_exception()->ToObject(&exception_object); } - Handle<Object> exception_handle(exception_object); + Handle<Object> exception_handle(exception_object, isolate); Isolate::ExceptionScope exception_scope(isolate); isolate->clear_pending_exception(); @@ -124,7 +125,7 @@ void MessageHandler::ReportMessage(Isolate* isolate, v8::NeanderArray global_listeners(FACTORY->message_listeners()); int global_length = global_listeners.length(); if (global_length == 0) { - DefaultMessageReport(loc, message); + DefaultMessageReport(isolate, loc, message); if (isolate->has_scheduled_exception()) { isolate->clear_scheduled_exception(); } @@ -152,25 +153,30 @@ void MessageHandler::ReportMessage(Isolate* isolate, } -Handle<String> MessageHandler::GetMessage(Handle<Object> data) { - Handle<String> fmt_str = FACTORY->LookupAsciiSymbol("FormatMessage"); +Handle<String> MessageHandler::GetMessage(Isolate* isolate, + Handle<Object> data) { + Factory* factory = isolate->factory(); + Handle<String> fmt_str = + factory->InternalizeOneByteString(STATIC_ASCII_VECTOR("FormatMessage")); Handle<JSFunction> fun = Handle<JSFunction>( JSFunction::cast( - Isolate::Current()->js_builtins_object()-> + isolate->js_builtins_object()-> GetPropertyNoExceptionThrown(*fmt_str))); - Handle<Object> argv[] = { data }; + Handle<JSMessageObject> message = Handle<JSMessageObject>::cast(data); + Handle<Object> argv[] = { Handle<Object>(message->type(), isolate), + Handle<Object>(message->arguments(), isolate) }; bool caught_exception; Handle<Object> result = Execution::TryCall(fun, - Isolate::Current()->js_builtins_object(), + isolate->js_builtins_object(), ARRAY_SIZE(argv), argv, &caught_exception); if (caught_exception || !result->IsString()) { - return FACTORY->LookupAsciiSymbol("<error>"); + return factory->InternalizeOneByteString(STATIC_ASCII_VECTOR("<error>")); } Handle<String> result_string = Handle<String>::cast(result); // A string that has been obtained from JS code in this way is @@ -184,9 +190,10 @@ Handle<String> MessageHandler::GetMessage(Handle<Object> data) { SmartArrayPointer<char> MessageHandler::GetLocalizedMessage( + Isolate* isolate, Handle<Object> data) { - HandleScope scope; - return GetMessage(data)->ToCString(DISALLOW_NULLS); + HandleScope scope(isolate); + return GetMessage(isolate, data)->ToCString(DISALLOW_NULLS); } |