| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2010, Google Inc. All rights reserved. | 2 * Copyright (c) 2010, Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 if (result.IsEmpty() || !result->IsBoolean()) | 184 if (result.IsEmpty() || !result->IsBoolean()) |
| 185 return false; | 185 return false; |
| 186 return result->BooleanValue(); | 186 return result->BooleanValue(); |
| 187 } | 187 } |
| 188 | 188 |
| 189 v8::Local<v8::Value> JavaScriptCallFrame::returnValue() const | 189 v8::Local<v8::Value> JavaScriptCallFrame::returnValue() const |
| 190 { | 190 { |
| 191 return v8::Local<v8::Object>::New(m_isolate, m_callFrame)->Get(toV8StringInt
ernalized(m_isolate, "returnValue")); | 191 return v8::Local<v8::Object>::New(m_isolate, m_callFrame)->Get(toV8StringInt
ernalized(m_isolate, "returnValue")); |
| 192 } | 192 } |
| 193 | 193 |
| 194 v8::Local<v8::Value> JavaScriptCallFrame::evaluateWithExceptionDetails(v8::Local
<v8::Value> expression, v8::Local<v8::Value> scopeExtension) | 194 v8::MaybeLocal<v8::Value> JavaScriptCallFrame::evaluate(v8::Local<v8::Value> exp
ression) |
| 195 { | 195 { |
| 196 v8::MicrotasksScope microtasks(m_isolate, v8::MicrotasksScope::kRunMicrotask
s); | 196 v8::MicrotasksScope microtasks(m_isolate, v8::MicrotasksScope::kRunMicrotask
s); |
| 197 v8::Local<v8::Object> callFrame = v8::Local<v8::Object>::New(m_isolate, m_ca
llFrame); | 197 v8::Local<v8::Object> callFrame = v8::Local<v8::Object>::New(m_isolate, m_ca
llFrame); |
| 198 v8::Local<v8::Function> evalFunction = v8::Local<v8::Function>::Cast(callFra
me->Get(toV8StringInternalized(m_isolate, "evaluate"))); | 198 v8::Local<v8::Function> evalFunction = v8::Local<v8::Function>::Cast(callFra
me->Get(toV8StringInternalized(m_isolate, "evaluate"))); |
| 199 v8::Local<v8::Value> argv[] = { | 199 return evalFunction->Call(m_isolate->GetCurrentContext(), callFrame, 1, &exp
ression); |
| 200 expression, | |
| 201 scopeExtension | |
| 202 }; | |
| 203 v8::TryCatch tryCatch(m_isolate); | |
| 204 v8::Local<v8::Object> wrappedResult = v8::Object::New(m_isolate); | |
| 205 v8::Local<v8::Value> result; | |
| 206 if (evalFunction->Call(m_isolate->GetCurrentContext(), callFrame, WTF_ARRAY_
LENGTH(argv), argv).ToLocal(&result)) { | |
| 207 wrappedResult->Set(v8::String::NewFromUtf8(m_isolate, "result"), result)
; | |
| 208 wrappedResult->Set(v8::String::NewFromUtf8(m_isolate, "exceptionDetails"
), v8::Undefined(m_isolate)); | |
| 209 } else { | |
| 210 wrappedResult->Set(v8::String::NewFromUtf8(m_isolate, "result"), tryCatc
h.Exception()); | |
| 211 wrappedResult->Set(v8::String::NewFromUtf8(m_isolate, "exceptionDetails"
), createExceptionDetails(m_isolate, tryCatch.Message())); | |
| 212 } | |
| 213 return wrappedResult; | |
| 214 } | 200 } |
| 215 | 201 |
| 216 v8::MaybeLocal<v8::Value> JavaScriptCallFrame::restart() | 202 v8::MaybeLocal<v8::Value> JavaScriptCallFrame::restart() |
| 217 { | 203 { |
| 218 v8::MicrotasksScope microtasks(m_isolate, v8::MicrotasksScope::kDoNotRunMicr
otasks); | 204 v8::MicrotasksScope microtasks(m_isolate, v8::MicrotasksScope::kDoNotRunMicr
otasks); |
| 219 v8::Local<v8::Object> callFrame = v8::Local<v8::Object>::New(m_isolate, m_ca
llFrame); | 205 v8::Local<v8::Object> callFrame = v8::Local<v8::Object>::New(m_isolate, m_ca
llFrame); |
| 220 v8::Local<v8::Function> restartFunction = v8::Local<v8::Function>::Cast(call
Frame->Get(toV8StringInternalized(m_isolate, "restart"))); | 206 v8::Local<v8::Function> restartFunction = v8::Local<v8::Function>::Cast(call
Frame->Get(toV8StringInternalized(m_isolate, "restart"))); |
| 221 v8::Debug::SetLiveEditEnabled(m_isolate, true); | 207 v8::Debug::SetLiveEditEnabled(m_isolate, true); |
| 222 v8::MaybeLocal<v8::Value> result = restartFunction->Call(m_isolate->GetCurre
ntContext(), callFrame, 0, nullptr); | 208 v8::MaybeLocal<v8::Value> result = restartFunction->Call(m_isolate->GetCurre
ntContext(), callFrame, 0, nullptr); |
| 223 v8::Debug::SetLiveEditEnabled(m_isolate, false); | 209 v8::Debug::SetLiveEditEnabled(m_isolate, false); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 246 exceptionDetails->Set(v8::String::NewFromUtf8(isolate, "line"), v8::Integer:
:New(isolate, message->GetLineNumber())); | 232 exceptionDetails->Set(v8::String::NewFromUtf8(isolate, "line"), v8::Integer:
:New(isolate, message->GetLineNumber())); |
| 247 exceptionDetails->Set(v8::String::NewFromUtf8(isolate, "column"), v8::Intege
r::New(isolate, message->GetStartColumn())); | 233 exceptionDetails->Set(v8::String::NewFromUtf8(isolate, "column"), v8::Intege
r::New(isolate, message->GetStartColumn())); |
| 248 if (!message->GetStackTrace().IsEmpty()) | 234 if (!message->GetStackTrace().IsEmpty()) |
| 249 exceptionDetails->Set(v8::String::NewFromUtf8(isolate, "stackTrace"), me
ssage->GetStackTrace()->AsArray()); | 235 exceptionDetails->Set(v8::String::NewFromUtf8(isolate, "stackTrace"), me
ssage->GetStackTrace()->AsArray()); |
| 250 else | 236 else |
| 251 exceptionDetails->Set(v8::String::NewFromUtf8(isolate, "stackTrace"), v8
::Undefined(isolate)); | 237 exceptionDetails->Set(v8::String::NewFromUtf8(isolate, "stackTrace"), v8
::Undefined(isolate)); |
| 252 return exceptionDetails; | 238 return exceptionDetails; |
| 253 } | 239 } |
| 254 | 240 |
| 255 } // namespace blink | 241 } // namespace blink |
| OLD | NEW |