Index: test/cctest/test-debug.cc |
diff --git a/test/cctest/test-debug.cc b/test/cctest/test-debug.cc |
index e1e928f43a9f4785dc37d3f03329e301cec2b1a1..a1a9471e986b61281409010c182fcf5af730af6b 100644 |
--- a/test/cctest/test-debug.cc |
+++ b/test/cctest/test-debug.cc |
@@ -25,6 +25,9 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
+// TODO(jochen): Remove this after the setting is turned on globally. |
+#define V8_IMMINENT_DEPRECATION_WARNINGS |
+ |
#include <stdlib.h> |
#include "src/v8.h" |
@@ -73,9 +76,9 @@ class DebugLocalContext { |
public: |
inline DebugLocalContext( |
v8::Isolate* isolate, v8::ExtensionConfiguration* extensions = 0, |
- v8::Handle<v8::ObjectTemplate> global_template = |
- v8::Handle<v8::ObjectTemplate>(), |
- v8::Handle<v8::Value> global_object = v8::Handle<v8::Value>()) |
+ v8::Local<v8::ObjectTemplate> global_template = |
+ v8::Local<v8::ObjectTemplate>(), |
+ v8::Local<v8::Value> global_object = v8::Local<v8::Value>()) |
: scope_(isolate), |
context_(v8::Context::New(isolate, extensions, global_template, |
global_object)) { |
@@ -83,9 +86,9 @@ class DebugLocalContext { |
} |
inline DebugLocalContext( |
v8::ExtensionConfiguration* extensions = 0, |
- v8::Handle<v8::ObjectTemplate> global_template = |
- v8::Handle<v8::ObjectTemplate>(), |
- v8::Handle<v8::Value> global_object = v8::Handle<v8::Value>()) |
+ v8::Local<v8::ObjectTemplate> global_template = |
+ v8::Local<v8::ObjectTemplate>(), |
+ v8::Local<v8::Value> global_object = v8::Local<v8::Value>()) |
: scope_(CcTest::isolate()), |
context_(v8::Context::New(CcTest::isolate(), extensions, |
global_template, global_object)) { |
@@ -127,31 +130,29 @@ class DebugLocalContext { |
// --- H e l p e r F u n c t i o n s |
- |
-// Compile and run the supplied source and return the fequested function. |
-static v8::Local<v8::Function> CompileFunction(DebugLocalContext* env, |
+// Compile and run the supplied source and return the requested function. |
+static v8::Local<v8::Function> CompileFunction(v8::Isolate* isolate, |
const char* source, |
const char* function_name) { |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), source)) |
- ->Run(); |
- return v8::Local<v8::Function>::Cast((*env)->Global()->Get( |
- v8::String::NewFromUtf8(env->GetIsolate(), function_name))); |
+ CompileRunChecked(isolate, source); |
+ v8::Local<v8::String> name = v8_str(isolate, function_name); |
+ v8::Local<v8::Context> context = isolate->GetCurrentContext(); |
+ v8::MaybeLocal<v8::Value> maybe_function = |
+ context->Global()->Get(context, name); |
+ return v8::Local<v8::Function>::Cast(maybe_function.ToLocalChecked()); |
} |
// Compile and run the supplied source and return the requested function. |
-static v8::Local<v8::Function> CompileFunction(v8::Isolate* isolate, |
+static v8::Local<v8::Function> CompileFunction(DebugLocalContext* env, |
const char* source, |
const char* function_name) { |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, source))->Run(); |
- v8::Local<v8::Object> global = isolate->GetCurrentContext()->Global(); |
- return v8::Local<v8::Function>::Cast( |
- global->Get(v8::String::NewFromUtf8(isolate, function_name))); |
+ return CompileFunction(env->GetIsolate(), source, function_name); |
} |
// Is there any debug info for the function? |
-static bool HasDebugInfo(v8::Handle<v8::Function> fun) { |
+static bool HasDebugInfo(v8::Local<v8::Function> fun) { |
Handle<v8::internal::JSFunction> f = |
Handle<v8::internal::JSFunction>::cast(v8::Utils::OpenHandle(*fun)); |
Handle<v8::internal::SharedFunctionInfo> shared(f->shared()); |
@@ -175,7 +176,7 @@ static int SetBreakPoint(Handle<v8::internal::JSFunction> fun, int position) { |
// Set a break point in a function and return the associated break point |
// number. |
-static int SetBreakPoint(v8::Handle<v8::Function> fun, int position) { |
+static int SetBreakPoint(v8::Local<v8::Function> fun, int position) { |
return SetBreakPoint( |
i::Handle<i::JSFunction>::cast(v8::Utils::OpenHandle(*fun)), position); |
} |
@@ -191,8 +192,8 @@ static int SetBreakPointFromJS(v8::Isolate* isolate, |
"debug.Debug.setBreakPoint(%s,%d,%d)", |
function_name, line, position); |
buffer[SMALL_STRING_BUFFER_SIZE - 1] = '\0'; |
- v8::Handle<v8::String> str = v8::String::NewFromUtf8(isolate, buffer.start()); |
- return v8::Script::Compile(str)->Run()->Int32Value(); |
+ v8::Local<v8::Value> value = CompileRunChecked(isolate, buffer.start()); |
+ return value->Int32Value(isolate->GetCurrentContext()).FromJust(); |
} |
@@ -214,11 +215,9 @@ static int SetScriptBreakPointByIdFromJS(v8::Isolate* isolate, int script_id, |
buffer[SMALL_STRING_BUFFER_SIZE - 1] = '\0'; |
{ |
v8::TryCatch try_catch(isolate); |
- v8::Handle<v8::String> str = |
- v8::String::NewFromUtf8(isolate, buffer.start()); |
- v8::Handle<v8::Value> value = v8::Script::Compile(str)->Run(); |
+ v8::Local<v8::Value> value = CompileRunChecked(isolate, buffer.start()); |
CHECK(!try_catch.HasCaught()); |
- return value->Int32Value(); |
+ return value->Int32Value(isolate->GetCurrentContext()).FromJust(); |
} |
} |
@@ -243,11 +242,9 @@ static int SetScriptBreakPointByNameFromJS(v8::Isolate* isolate, |
buffer[SMALL_STRING_BUFFER_SIZE - 1] = '\0'; |
{ |
v8::TryCatch try_catch(isolate); |
- v8::Handle<v8::String> str = |
- v8::String::NewFromUtf8(isolate, buffer.start()); |
- v8::Handle<v8::Value> value = v8::Script::Compile(str)->Run(); |
+ v8::Local<v8::Value> value = CompileRunChecked(isolate, buffer.start()); |
CHECK(!try_catch.HasCaught()); |
- return value->Int32Value(); |
+ return value->Int32Value(isolate->GetCurrentContext()).FromJust(); |
} |
} |
@@ -269,7 +266,7 @@ static void ClearBreakPointFromJS(v8::Isolate* isolate, |
"debug.Debug.clearBreakPoint(%d)", |
break_point_number); |
buffer[SMALL_STRING_BUFFER_SIZE - 1] = '\0'; |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, buffer.start()))->Run(); |
+ CompileRunChecked(isolate, buffer.start()); |
} |
@@ -280,7 +277,7 @@ static void EnableScriptBreakPointFromJS(v8::Isolate* isolate, |
"debug.Debug.enableScriptBreakPoint(%d)", |
break_point_number); |
buffer[SMALL_STRING_BUFFER_SIZE - 1] = '\0'; |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, buffer.start()))->Run(); |
+ CompileRunChecked(isolate, buffer.start()); |
} |
@@ -291,7 +288,7 @@ static void DisableScriptBreakPointFromJS(v8::Isolate* isolate, |
"debug.Debug.disableScriptBreakPoint(%d)", |
break_point_number); |
buffer[SMALL_STRING_BUFFER_SIZE - 1] = '\0'; |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, buffer.start()))->Run(); |
+ CompileRunChecked(isolate, buffer.start()); |
} |
@@ -303,7 +300,7 @@ static void ChangeScriptBreakPointConditionFromJS(v8::Isolate* isolate, |
"debug.Debug.changeScriptBreakPointCondition(%d, \"%s\")", |
break_point_number, condition); |
buffer[SMALL_STRING_BUFFER_SIZE - 1] = '\0'; |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, buffer.start()))->Run(); |
+ CompileRunChecked(isolate, buffer.start()); |
} |
@@ -315,7 +312,7 @@ static void ChangeScriptBreakPointIgnoreCountFromJS(v8::Isolate* isolate, |
"debug.Debug.changeScriptBreakPointIgnoreCount(%d, %d)", |
break_point_number, ignoreCount); |
buffer[SMALL_STRING_BUFFER_SIZE - 1] = '\0'; |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, buffer.start()))->Run(); |
+ CompileRunChecked(isolate, buffer.start()); |
} |
@@ -331,22 +328,14 @@ static void ChangeBreakOnException(bool caught, bool uncaught) { |
static void ChangeBreakOnExceptionFromJS(v8::Isolate* isolate, bool caught, |
bool uncaught) { |
if (caught) { |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(isolate, "debug.Debug.setBreakOnException()")) |
- ->Run(); |
+ CompileRunChecked(isolate, "debug.Debug.setBreakOnException()"); |
} else { |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(isolate, "debug.Debug.clearBreakOnException()")) |
- ->Run(); |
+ CompileRunChecked(isolate, "debug.Debug.clearBreakOnException()"); |
} |
if (uncaught) { |
- v8::Script::Compile( |
- v8::String::NewFromUtf8( |
- isolate, "debug.Debug.setBreakOnUncaughtException()"))->Run(); |
+ CompileRunChecked(isolate, "debug.Debug.setBreakOnUncaughtException()"); |
} else { |
- v8::Script::Compile( |
- v8::String::NewFromUtf8( |
- isolate, "debug.Debug.clearBreakOnUncaughtException()"))->Run(); |
+ CompileRunChecked(isolate, "debug.Debug.clearBreakOnUncaughtException()"); |
} |
} |
@@ -520,7 +509,7 @@ static const char* frame_count_source = |
"function frame_count(exec_state) {" |
" return exec_state.frameCount();" |
"}"; |
-v8::Handle<v8::Function> frame_count; |
+v8::Local<v8::Function> frame_count; |
// Global variable to store the last function hit - used by some tests. |
@@ -539,7 +528,8 @@ int break_point_hit_count_deoptimize = 0; |
static void DebugEventBreakPointHitCount( |
const v8::Debug::EventDetails& event_details) { |
v8::DebugEvent event = event_details.GetEvent(); |
- v8::Handle<v8::Object> exec_state = event_details.GetExecutionState(); |
+ v8::Local<v8::Object> exec_state = event_details.GetExecutionState(); |
+ v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext(); |
v8::internal::Isolate* isolate = CcTest::i_isolate(); |
Debug* debug = isolate->debug(); |
// When hitting a debug event listener there must be a break set. |
@@ -551,16 +541,16 @@ static void DebugEventBreakPointHitCount( |
if (!frame_function_name.IsEmpty()) { |
// Get the name of the function. |
const int argc = 2; |
- v8::Handle<v8::Value> argv[argc] = { |
- exec_state, v8::Integer::New(CcTest::isolate(), 0) |
- }; |
- v8::Handle<v8::Value> result = frame_function_name->Call(exec_state, |
- argc, argv); |
+ v8::Local<v8::Value> argv[argc] = { |
+ exec_state, v8::Integer::New(CcTest::isolate(), 0)}; |
+ v8::Local<v8::Value> result = |
+ frame_function_name->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
if (result->IsUndefined()) { |
last_function_hit[0] = '\0'; |
} else { |
CHECK(result->IsString()); |
- v8::Handle<v8::String> function_name(result.As<v8::String>()); |
+ v8::Local<v8::String> function_name(result.As<v8::String>()); |
function_name->WriteUtf8(last_function_hit); |
} |
} |
@@ -568,34 +558,37 @@ static void DebugEventBreakPointHitCount( |
if (!frame_source_line.IsEmpty()) { |
// Get the source line. |
const int argc = 1; |
- v8::Handle<v8::Value> argv[argc] = { exec_state }; |
- v8::Handle<v8::Value> result = frame_source_line->Call(exec_state, |
- argc, argv); |
+ v8::Local<v8::Value> argv[argc] = {exec_state}; |
+ v8::Local<v8::Value> result = |
+ frame_source_line->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
CHECK(result->IsNumber()); |
- last_source_line = result->Int32Value(); |
+ last_source_line = result->Int32Value(context).FromJust(); |
} |
if (!frame_source_column.IsEmpty()) { |
// Get the source column. |
const int argc = 1; |
- v8::Handle<v8::Value> argv[argc] = { exec_state }; |
- v8::Handle<v8::Value> result = frame_source_column->Call(exec_state, |
- argc, argv); |
+ v8::Local<v8::Value> argv[argc] = {exec_state}; |
+ v8::Local<v8::Value> result = |
+ frame_source_column->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
CHECK(result->IsNumber()); |
- last_source_column = result->Int32Value(); |
+ last_source_column = result->Int32Value(context).FromJust(); |
} |
if (!frame_script_name.IsEmpty()) { |
// Get the script name of the function script. |
const int argc = 1; |
- v8::Handle<v8::Value> argv[argc] = { exec_state }; |
- v8::Handle<v8::Value> result = frame_script_name->Call(exec_state, |
- argc, argv); |
+ v8::Local<v8::Value> argv[argc] = {exec_state}; |
+ v8::Local<v8::Value> result = |
+ frame_script_name->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
if (result->IsUndefined()) { |
last_script_name_hit[0] = '\0'; |
} else { |
CHECK(result->IsString()); |
- v8::Handle<v8::String> script_name(result.As<v8::String>()); |
+ v8::Local<v8::String> script_name(result.As<v8::String>()); |
script_name->WriteUtf8(last_script_name_hit); |
} |
} |
@@ -614,7 +607,7 @@ static void DebugEventBreakPointHitCount( |
int exception_hit_count = 0; |
int uncaught_exception_hit_count = 0; |
int last_js_stack_height = -1; |
-v8::Handle<v8::Function> debug_event_listener_callback; |
+v8::Local<v8::Function> debug_event_listener_callback; |
int debug_event_listener_callback_result; |
static void DebugEventCounterClear() { |
@@ -626,8 +619,9 @@ static void DebugEventCounterClear() { |
static void DebugEventCounter( |
const v8::Debug::EventDetails& event_details) { |
v8::DebugEvent event = event_details.GetEvent(); |
- v8::Handle<v8::Object> exec_state = event_details.GetExecutionState(); |
- v8::Handle<v8::Object> event_data = event_details.GetEventData(); |
+ v8::Local<v8::Object> exec_state = event_details.GetExecutionState(); |
+ v8::Local<v8::Object> event_data = event_details.GetEventData(); |
+ v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext(); |
v8::internal::Debug* debug = CcTest::i_isolate()->debug(); |
// When hitting a debug event listener there must be a break set. |
@@ -640,11 +634,11 @@ static void DebugEventCounter( |
exception_hit_count++; |
// Check whether the exception was uncaught. |
- v8::Local<v8::String> fun_name = |
- v8::String::NewFromUtf8(CcTest::isolate(), "uncaught"); |
- v8::Local<v8::Function> fun = |
- v8::Local<v8::Function>::Cast(event_data->Get(fun_name)); |
- v8::Local<v8::Value> result = fun->Call(event_data, 0, NULL); |
+ v8::Local<v8::String> fun_name = v8_str(CcTest::isolate(), "uncaught"); |
+ v8::Local<v8::Function> fun = v8::Local<v8::Function>::Cast( |
+ event_data->Get(context, fun_name).ToLocalChecked()); |
+ v8::Local<v8::Value> result = |
+ fun->Call(context, event_data, 0, NULL).ToLocalChecked(); |
if (result->IsTrue()) { |
uncaught_exception_hit_count++; |
} |
@@ -654,18 +648,21 @@ static void DebugEventCounter( |
// compiled. |
if (!frame_count.IsEmpty()) { |
static const int kArgc = 1; |
- v8::Handle<v8::Value> argv[kArgc] = { exec_state }; |
+ v8::Local<v8::Value> argv[kArgc] = {exec_state}; |
// Using exec_state as receiver is just to have a receiver. |
- v8::Handle<v8::Value> result = frame_count->Call(exec_state, kArgc, argv); |
- last_js_stack_height = result->Int32Value(); |
+ v8::Local<v8::Value> result = |
+ frame_count->Call(context, exec_state, kArgc, argv).ToLocalChecked(); |
+ last_js_stack_height = result->Int32Value(context).FromJust(); |
} |
// Run callback from DebugEventListener and check the result. |
if (!debug_event_listener_callback.IsEmpty()) { |
- v8::Handle<v8::Value> result = |
- debug_event_listener_callback->Call(event_data, 0, NULL); |
+ v8::Local<v8::Value> result = |
+ debug_event_listener_callback->Call(context, event_data, 0, NULL) |
+ .ToLocalChecked(); |
CHECK(!result.IsEmpty()); |
- CHECK_EQ(debug_event_listener_callback_result, result->Int32Value()); |
+ CHECK_EQ(debug_event_listener_callback_result, |
+ result->Int32Value(context).FromJust()); |
} |
} |
@@ -680,7 +677,7 @@ static void DebugEventCounter( |
// Structure for holding checks to do. |
struct EvaluateCheck { |
const char* expr; // An expression to evaluate when a break point is hit. |
- v8::Handle<v8::Value> expected; // The expected result. |
+ v8::Local<v8::Value> expected; // The expected result. |
}; |
@@ -698,7 +695,9 @@ v8::Local<v8::Function> evaluate_check_function; |
static void DebugEventEvaluate( |
const v8::Debug::EventDetails& event_details) { |
v8::DebugEvent event = event_details.GetEvent(); |
- v8::Handle<v8::Object> exec_state = event_details.GetExecutionState(); |
+ v8::Local<v8::Object> exec_state = event_details.GetExecutionState(); |
+ v8::Isolate* isolate = CcTest::isolate(); |
+ v8::Local<v8::Context> context = isolate->GetCurrentContext(); |
v8::internal::Debug* debug = CcTest::i_isolate()->debug(); |
// When hitting a debug event listener there must be a break set. |
CHECK_NE(debug->break_id(), 0); |
@@ -707,12 +706,12 @@ static void DebugEventEvaluate( |
break_point_hit_count++; |
for (int i = 0; checks[i].expr != NULL; i++) { |
const int argc = 3; |
- v8::Handle<v8::Value> argv[argc] = { |
- exec_state, |
- v8::String::NewFromUtf8(CcTest::isolate(), checks[i].expr), |
- checks[i].expected}; |
- v8::Handle<v8::Value> result = |
- evaluate_check_function->Call(exec_state, argc, argv); |
+ v8::Local<v8::String> string = v8_str(isolate, checks[i].expr); |
+ v8::Local<v8::Value> argv[argc] = {exec_state, string, |
+ checks[i].expected}; |
+ v8::Local<v8::Value> result = |
+ evaluate_check_function->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
if (!result->IsTrue()) { |
v8::String::Utf8Value utf8(checks[i].expected); |
V8_Fatal(__FILE__, __LINE__, "%s != %s", checks[i].expr, *utf8); |
@@ -727,7 +726,7 @@ int debug_event_remove_break_point = 0; |
static void DebugEventRemoveBreakPoint( |
const v8::Debug::EventDetails& event_details) { |
v8::DebugEvent event = event_details.GetEvent(); |
- v8::Handle<v8::Value> data = event_details.GetCallbackData(); |
+ v8::Local<v8::Value> data = event_details.GetCallbackData(); |
v8::internal::Debug* debug = CcTest::i_isolate()->debug(); |
// When hitting a debug event listener there must be a break set. |
CHECK_NE(debug->break_id(), 0); |
@@ -772,7 +771,7 @@ const char* expected_step_sequence = NULL; |
static void DebugEventStepSequence( |
const v8::Debug::EventDetails& event_details) { |
v8::DebugEvent event = event_details.GetEvent(); |
- v8::Handle<v8::Object> exec_state = event_details.GetExecutionState(); |
+ v8::Local<v8::Object> exec_state = event_details.GetExecutionState(); |
v8::internal::Debug* debug = CcTest::i_isolate()->debug(); |
// When hitting a debug event listener there must be a break set. |
CHECK_NE(debug->break_id(), 0); |
@@ -782,13 +781,15 @@ static void DebugEventStepSequence( |
CHECK(break_point_hit_count < |
StrLength(expected_step_sequence)); |
const int argc = 2; |
- v8::Handle<v8::Value> argv[argc] = { |
- exec_state, v8::Integer::New(CcTest::isolate(), 0) |
- }; |
- v8::Handle<v8::Value> result = frame_function_name->Call(exec_state, |
- argc, argv); |
+ v8::Local<v8::Value> argv[argc] = {exec_state, |
+ v8::Integer::New(CcTest::isolate(), 0)}; |
+ v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext(); |
+ v8::Local<v8::Value> result = |
+ frame_function_name->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
CHECK(result->IsString()); |
- v8::String::Utf8Value function_name(result->ToString(CcTest::isolate())); |
+ v8::String::Utf8Value function_name( |
+ result->ToString(context).ToLocalChecked()); |
CHECK_EQ(1, StrLength(*function_name)); |
CHECK_EQ((*function_name)[0], |
expected_step_sequence[break_point_hit_count]); |
@@ -870,7 +871,7 @@ static void DebugEventBreakMax( |
} else if (terminate_after_max_break_point_hit) { |
// Terminate execution after the last break if requested. |
- v8::V8::TerminateExecution(v8_isolate); |
+ v8_isolate->TerminateExecution(); |
} |
// Perform a full deoptimization when the specified number of |
@@ -892,8 +893,8 @@ static void MessageCallbackCountClear() { |
message_callback_count = 0; |
} |
-static void MessageCallbackCount(v8::Handle<v8::Message> message, |
- v8::Handle<v8::Value> data) { |
+static void MessageCallbackCount(v8::Local<v8::Message> message, |
+ v8::Local<v8::Value> data) { |
message_callback_count++; |
} |
@@ -946,25 +947,23 @@ TEST(BreakPointICStore) { |
v8::HandleScope scope(env->GetIsolate()); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), |
- "function foo(){bar=0;}"))->Run(); |
- v8::Local<v8::Function> foo = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "foo"))); |
+ v8::Local<v8::Function> foo = |
+ CompileFunction(&env, "function foo(){bar=0;}", "foo"); |
// Run without breakpoints. |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Run with breakpoint |
int bp = SetBreakPoint(foo, 0); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
// Run without breakpoints. |
ClearBreakPoint(bp); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -978,28 +977,25 @@ TEST(BreakPointICLoad) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), "bar=1")) |
- ->Run(); |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), "function foo(){var x=bar;}")) |
- ->Run(); |
- v8::Local<v8::Function> foo = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "foo"))); |
+ |
+ CompileRunChecked(env->GetIsolate(), "bar=1"); |
+ v8::Local<v8::Function> foo = |
+ CompileFunction(&env, "function foo(){var x=bar;}", "foo"); |
// Run without breakpoints. |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Run with breakpoint. |
int bp = SetBreakPoint(foo, 0); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
// Run without breakpoints. |
ClearBreakPoint(bp); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1013,27 +1009,24 @@ TEST(BreakPointICCall) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), "function bar(){}"))->Run(); |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), |
- "function foo(){bar();}"))->Run(); |
- v8::Local<v8::Function> foo = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "foo"))); |
+ CompileRunChecked(env->GetIsolate(), "function bar(){}"); |
+ v8::Local<v8::Function> foo = |
+ CompileFunction(&env, "function foo(){bar();}", "foo"); |
// Run without breakpoints. |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Run with breakpoint |
int bp = SetBreakPoint(foo, 0); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
// Run without breakpoints. |
ClearBreakPoint(bp); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1047,29 +1040,34 @@ TEST(BreakPointICCallWithGC) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointCollectGarbage); |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), "function bar(){return 1;}")) |
- ->Run(); |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), |
- "function foo(){return bar();}")) |
- ->Run(); |
- v8::Local<v8::Function> foo = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "foo"))); |
+ CompileRunChecked(env->GetIsolate(), "function bar(){return 1;}"); |
+ v8::Local<v8::Function> foo = |
+ CompileFunction(&env, "function foo(){return bar();}", "foo"); |
+ v8::Local<v8::Context> context = env.context(); |
// Run without breakpoints. |
- CHECK_EQ(1, foo->Call(env->Global(), 0, NULL)->Int32Value()); |
+ CHECK_EQ(1, foo->Call(context, env->Global(), 0, NULL) |
+ .ToLocalChecked() |
+ ->Int32Value(context) |
+ .FromJust()); |
CHECK_EQ(0, break_point_hit_count); |
// Run with breakpoint. |
int bp = SetBreakPoint(foo, 0); |
- CHECK_EQ(1, foo->Call(env->Global(), 0, NULL)->Int32Value()); |
+ CHECK_EQ(1, foo->Call(context, env->Global(), 0, NULL) |
+ .ToLocalChecked() |
+ ->Int32Value(context) |
+ .FromJust()); |
CHECK_EQ(1, break_point_hit_count); |
- CHECK_EQ(1, foo->Call(env->Global(), 0, NULL)->Int32Value()); |
+ CHECK_EQ(1, foo->Call(context, env->Global(), 0, NULL) |
+ .ToLocalChecked() |
+ ->Int32Value(context) |
+ .FromJust()); |
CHECK_EQ(2, break_point_hit_count); |
// Run without breakpoints. |
ClearBreakPoint(bp); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1083,29 +1081,34 @@ TEST(BreakPointConstructCallWithGC) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointCollectGarbage); |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), |
- "function bar(){ this.x = 1;}")) |
- ->Run(); |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), |
- "function foo(){return new bar(1).x;}"))->Run(); |
- v8::Local<v8::Function> foo = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "foo"))); |
+ CompileRunChecked(env->GetIsolate(), "function bar(){ this.x = 1;}"); |
+ v8::Local<v8::Function> foo = |
+ CompileFunction(&env, "function foo(){return new bar(1).x;}", "foo"); |
+ v8::Local<v8::Context> context = env.context(); |
// Run without breakpoints. |
- CHECK_EQ(1, foo->Call(env->Global(), 0, NULL)->Int32Value()); |
+ CHECK_EQ(1, foo->Call(context, env->Global(), 0, NULL) |
+ .ToLocalChecked() |
+ ->Int32Value(context) |
+ .FromJust()); |
CHECK_EQ(0, break_point_hit_count); |
// Run with breakpoint. |
int bp = SetBreakPoint(foo, 0); |
- CHECK_EQ(1, foo->Call(env->Global(), 0, NULL)->Int32Value()); |
+ CHECK_EQ(1, foo->Call(context, env->Global(), 0, NULL) |
+ .ToLocalChecked() |
+ ->Int32Value(context) |
+ .FromJust()); |
CHECK_EQ(1, break_point_hit_count); |
- CHECK_EQ(1, foo->Call(env->Global(), 0, NULL)->Int32Value()); |
+ CHECK_EQ(1, foo->Call(context, env->Global(), 0, NULL) |
+ .ToLocalChecked() |
+ ->Int32Value(context) |
+ .FromJust()); |
CHECK_EQ(2, break_point_hit_count); |
// Run without breakpoints. |
ClearBreakPoint(bp); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1130,29 +1133,28 @@ TEST(BreakPointReturn) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), "function foo(){}"))->Run(); |
- v8::Local<v8::Function> foo = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "foo"))); |
+ v8::Local<v8::Function> foo = |
+ CompileFunction(&env, "function foo(){}", "foo"); |
+ v8::Local<v8::Context> context = env.context(); |
// Run without breakpoints. |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Run with breakpoint |
int bp = SetBreakPoint(foo, 0); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
CHECK_EQ(0, last_source_line); |
CHECK_EQ(15, last_source_column); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
CHECK_EQ(0, last_source_line); |
CHECK_EQ(15, last_source_column); |
// Run without breakpoints. |
ClearBreakPoint(bp); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1160,13 +1162,13 @@ TEST(BreakPointReturn) { |
} |
-static void CallWithBreakPoints(v8::Local<v8::Object> recv, |
+static void CallWithBreakPoints(v8::Local<v8::Context> context, |
+ v8::Local<v8::Object> recv, |
v8::Local<v8::Function> f, |
- int break_point_count, |
- int call_count) { |
+ int break_point_count, int call_count) { |
break_point_hit_count = 0; |
for (int i = 0; i < call_count; i++) { |
- f->Call(recv, 0, NULL); |
+ f->Call(context, recv, 0, NULL).ToLocalChecked(); |
CHECK_EQ((i + 1) * break_point_count, break_point_hit_count); |
} |
} |
@@ -1177,6 +1179,7 @@ TEST(GCDuringBreakPointProcessing) { |
break_point_hit_count = 0; |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
+ v8::Local<v8::Context> context = env.context(); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointCollectGarbage); |
v8::Local<v8::Function> foo; |
@@ -1184,27 +1187,27 @@ TEST(GCDuringBreakPointProcessing) { |
// Test IC store break point with garbage collection. |
foo = CompileFunction(&env, "function foo(){bar=0;}", "foo"); |
SetBreakPoint(foo, 0); |
- CallWithBreakPoints(env->Global(), foo, 1, 10); |
+ CallWithBreakPoints(context, env->Global(), foo, 1, 10); |
// Test IC load break point with garbage collection. |
foo = CompileFunction(&env, "bar=1;function foo(){var x=bar;}", "foo"); |
SetBreakPoint(foo, 0); |
- CallWithBreakPoints(env->Global(), foo, 1, 10); |
+ CallWithBreakPoints(context, env->Global(), foo, 1, 10); |
// Test IC call break point with garbage collection. |
foo = CompileFunction(&env, "function bar(){};function foo(){bar();}", "foo"); |
SetBreakPoint(foo, 0); |
- CallWithBreakPoints(env->Global(), foo, 1, 10); |
+ CallWithBreakPoints(context, env->Global(), foo, 1, 10); |
// Test return break point with garbage collection. |
foo = CompileFunction(&env, "function foo(){}", "foo"); |
SetBreakPoint(foo, 0); |
- CallWithBreakPoints(env->Global(), foo, 1, 25); |
+ CallWithBreakPoints(context, env->Global(), foo, 1, 25); |
// Test debug break slot break point with garbage collection. |
foo = CompileFunction(&env, "function foo(){var a;}", "foo"); |
SetBreakPoint(foo, 0); |
- CallWithBreakPoints(env->Global(), foo, 1, 25); |
+ CallWithBreakPoints(context, env->Global(), foo, 1, 25); |
v8::Debug::SetDebugEventListener(NULL); |
CheckDebuggerUnloaded(); |
@@ -1213,23 +1216,23 @@ TEST(GCDuringBreakPointProcessing) { |
// Call the function three times with different garbage collections in between |
// and make sure that the break point survives. |
-static void CallAndGC(v8::Local<v8::Object> recv, |
- v8::Local<v8::Function> f) { |
+static void CallAndGC(v8::Local<v8::Context> context, |
+ v8::Local<v8::Object> recv, v8::Local<v8::Function> f) { |
break_point_hit_count = 0; |
for (int i = 0; i < 3; i++) { |
// Call function. |
- f->Call(recv, 0, NULL); |
+ f->Call(context, recv, 0, NULL).ToLocalChecked(); |
CHECK_EQ(1 + i * 3, break_point_hit_count); |
// Scavenge and call function. |
CcTest::heap()->CollectGarbage(v8::internal::NEW_SPACE); |
- f->Call(recv, 0, NULL); |
+ f->Call(context, recv, 0, NULL).ToLocalChecked(); |
CHECK_EQ(2 + i * 3, break_point_hit_count); |
// Mark sweep (and perhaps compact) and call function. |
CcTest::heap()->CollectAllGarbage(); |
- f->Call(recv, 0, NULL); |
+ f->Call(context, recv, 0, NULL).ToLocalChecked(); |
CHECK_EQ(3 + i * 3, break_point_hit_count); |
} |
} |
@@ -1240,6 +1243,7 @@ TEST(BreakPointSurviveGC) { |
break_point_hit_count = 0; |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
+ v8::Local<v8::Context> context = env.context(); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
v8::Local<v8::Function> foo; |
@@ -1250,7 +1254,7 @@ TEST(BreakPointSurviveGC) { |
foo = CompileFunction(&env, "function foo(){bar=0;}", "foo"); |
SetBreakPoint(foo, 0); |
} |
- CallAndGC(env->Global(), foo); |
+ CallAndGC(context, env->Global(), foo); |
// Test IC load break point with garbage collection. |
{ |
@@ -1258,7 +1262,7 @@ TEST(BreakPointSurviveGC) { |
foo = CompileFunction(&env, "bar=1;function foo(){var x=bar;}", "foo"); |
SetBreakPoint(foo, 0); |
} |
- CallAndGC(env->Global(), foo); |
+ CallAndGC(context, env->Global(), foo); |
// Test IC call break point with garbage collection. |
{ |
@@ -1268,7 +1272,7 @@ TEST(BreakPointSurviveGC) { |
"foo"); |
SetBreakPoint(foo, 0); |
} |
- CallAndGC(env->Global(), foo); |
+ CallAndGC(context, env->Global(), foo); |
// Test return break point with garbage collection. |
{ |
@@ -1276,7 +1280,7 @@ TEST(BreakPointSurviveGC) { |
foo = CompileFunction(&env, "function foo(){}", "foo"); |
SetBreakPoint(foo, 0); |
} |
- CallAndGC(env->Global(), foo); |
+ CallAndGC(context, env->Global(), foo); |
// Test non IC break point with garbage collection. |
{ |
@@ -1284,7 +1288,7 @@ TEST(BreakPointSurviveGC) { |
foo = CompileFunction(&env, "function foo(){var bar=0;}", "foo"); |
SetBreakPoint(foo, 0); |
} |
- CallAndGC(env->Global(), foo); |
+ CallAndGC(context, env->Global(), foo); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1296,49 +1300,47 @@ TEST(BreakPointSurviveGC) { |
TEST(BreakPointThroughJavaScript) { |
break_point_hit_count = 0; |
DebugLocalContext env; |
- v8::HandleScope scope(env->GetIsolate()); |
+ v8::Isolate* isolate = env->GetIsolate(); |
+ v8::HandleScope scope(isolate); |
+ v8::Local<v8::Context> context = env.context(); |
env.ExposeDebug(); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), "function bar(){}"))->Run(); |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), |
- "function foo(){bar();bar();}")) |
- ->Run(); |
- // 012345678901234567890 |
- // 1 2 |
+ CompileRunChecked(isolate, "function bar(){}"); |
+ CompileFunction(isolate, "function foo(){bar();bar();}", "foo"); |
+ // 012345678901234567890 |
+ // 1 2 |
// Break points are set at position 3 and 9 |
+ v8::Local<v8::String> source = v8_str(env->GetIsolate(), "foo()"); |
v8::Local<v8::Script> foo = |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), "foo()")); |
+ v8::Script::Compile(context, source).ToLocalChecked(); |
- // Run without breakpoints. |
- foo->Run(); |
CHECK_EQ(0, break_point_hit_count); |
// Run with one breakpoint |
int bp1 = SetBreakPointFromJS(env->GetIsolate(), "foo", 0, 3); |
- foo->Run(); |
+ foo->Run(context).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
- foo->Run(); |
+ foo->Run(context).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
// Run with two breakpoints |
int bp2 = SetBreakPointFromJS(env->GetIsolate(), "foo", 0, 9); |
- foo->Run(); |
+ foo->Run(context).ToLocalChecked(); |
CHECK_EQ(4, break_point_hit_count); |
- foo->Run(); |
+ foo->Run(context).ToLocalChecked(); |
CHECK_EQ(6, break_point_hit_count); |
// Run with one breakpoint |
ClearBreakPointFromJS(env->GetIsolate(), bp2); |
- foo->Run(); |
+ foo->Run(context).ToLocalChecked(); |
CHECK_EQ(7, break_point_hit_count); |
- foo->Run(); |
+ foo->Run(context).ToLocalChecked(); |
CHECK_EQ(8, break_point_hit_count); |
// Run without breakpoints. |
ClearBreakPointFromJS(env->GetIsolate(), bp1); |
- foo->Run(); |
+ foo->Run(context).ToLocalChecked(); |
CHECK_EQ(8, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1355,92 +1357,95 @@ TEST(BreakPointThroughJavaScript) { |
TEST(ScriptBreakPointByNameThroughJavaScript) { |
break_point_hit_count = 0; |
DebugLocalContext env; |
- v8::HandleScope scope(env->GetIsolate()); |
+ v8::Isolate* isolate = env->GetIsolate(); |
+ v8::HandleScope scope(isolate); |
+ v8::Local<v8::Context> context = env.context(); |
env.ExposeDebug(); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
- v8::Local<v8::String> script = v8::String::NewFromUtf8( |
- env->GetIsolate(), |
- "function f() {\n" |
- " function h() {\n" |
- " a = 0; // line 2\n" |
- " }\n" |
- " b = 1; // line 4\n" |
- " return h();\n" |
- "}\n" |
- "\n" |
- "function g() {\n" |
- " function h() {\n" |
- " a = 0;\n" |
- " }\n" |
- " b = 2; // line 12\n" |
- " h();\n" |
- " b = 3; // line 14\n" |
- " f(); // line 15\n" |
- "}"); |
+ v8::Local<v8::String> script = v8_str(isolate, |
+ "function f() {\n" |
+ " function h() {\n" |
+ " a = 0; // line 2\n" |
+ " }\n" |
+ " b = 1; // line 4\n" |
+ " return h();\n" |
+ "}\n" |
+ "\n" |
+ "function g() {\n" |
+ " function h() {\n" |
+ " a = 0;\n" |
+ " }\n" |
+ " b = 2; // line 12\n" |
+ " h();\n" |
+ " b = 3; // line 14\n" |
+ " f(); // line 15\n" |
+ "}"); |
// Compile the script and get the two functions. |
- v8::ScriptOrigin origin = |
- v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "test")); |
- v8::Script::Compile(script, &origin)->Run(); |
+ v8::ScriptOrigin origin = v8::ScriptOrigin(v8_str(isolate, "test")); |
+ v8::Script::Compile(context, script, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global()->Get(context, v8_str(isolate, "f")).ToLocalChecked()); |
v8::Local<v8::Function> g = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "g"))); |
+ env->Global()->Get(context, v8_str(isolate, "g")).ToLocalChecked()); |
// Call f and g without break points. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Call f and g with break point on line 12. |
- int sbp1 = SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test", 12, 0); |
+ int sbp1 = SetScriptBreakPointByNameFromJS(isolate, "test", 12, 0); |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
// Remove the break point again. |
break_point_hit_count = 0; |
ClearBreakPointFromJS(env->GetIsolate(), sbp1); |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Call f and g with break point on line 2. |
int sbp2 = SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test", 2, 0); |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
// Call f and g with break point on line 2, 4, 12, 14 and 15. |
- int sbp3 = SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test", 4, 0); |
- int sbp4 = SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test", 12, 0); |
- int sbp5 = SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test", 14, 0); |
- int sbp6 = SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test", 15, 0); |
+ int sbp3 = SetScriptBreakPointByNameFromJS(isolate, "test", 4, 0); |
+ int sbp4 = SetScriptBreakPointByNameFromJS(isolate, "test", 12, 0); |
+ int sbp5 = SetScriptBreakPointByNameFromJS(isolate, "test", 14, 0); |
+ int sbp6 = SetScriptBreakPointByNameFromJS(isolate, "test", 15, 0); |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(7, break_point_hit_count); |
// Remove all the break points again. |
break_point_hit_count = 0; |
- ClearBreakPointFromJS(env->GetIsolate(), sbp2); |
- ClearBreakPointFromJS(env->GetIsolate(), sbp3); |
- ClearBreakPointFromJS(env->GetIsolate(), sbp4); |
- ClearBreakPointFromJS(env->GetIsolate(), sbp5); |
- ClearBreakPointFromJS(env->GetIsolate(), sbp6); |
- f->Call(env->Global(), 0, NULL); |
+ ClearBreakPointFromJS(isolate, sbp2); |
+ ClearBreakPointFromJS(isolate, sbp3); |
+ ClearBreakPointFromJS(isolate, sbp4); |
+ ClearBreakPointFromJS(isolate, sbp5); |
+ ClearBreakPointFromJS(isolate, sbp6); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1459,73 +1464,74 @@ TEST(ScriptBreakPointByNameThroughJavaScript) { |
TEST(ScriptBreakPointByIdThroughJavaScript) { |
break_point_hit_count = 0; |
DebugLocalContext env; |
- v8::HandleScope scope(env->GetIsolate()); |
+ v8::Isolate* isolate = env->GetIsolate(); |
+ v8::HandleScope scope(isolate); |
+ v8::Local<v8::Context> context = env.context(); |
env.ExposeDebug(); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
- v8::Local<v8::String> source = v8::String::NewFromUtf8( |
- env->GetIsolate(), |
- "function f() {\n" |
- " function h() {\n" |
- " a = 0; // line 2\n" |
- " }\n" |
- " b = 1; // line 4\n" |
- " return h();\n" |
- "}\n" |
- "\n" |
- "function g() {\n" |
- " function h() {\n" |
- " a = 0;\n" |
- " }\n" |
- " b = 2; // line 12\n" |
- " h();\n" |
- " b = 3; // line 14\n" |
- " f(); // line 15\n" |
- "}"); |
+ v8::Local<v8::String> source = v8_str(isolate, |
+ "function f() {\n" |
+ " function h() {\n" |
+ " a = 0; // line 2\n" |
+ " }\n" |
+ " b = 1; // line 4\n" |
+ " return h();\n" |
+ "}\n" |
+ "\n" |
+ "function g() {\n" |
+ " function h() {\n" |
+ " a = 0;\n" |
+ " }\n" |
+ " b = 2; // line 12\n" |
+ " h();\n" |
+ " b = 3; // line 14\n" |
+ " f(); // line 15\n" |
+ "}"); |
// Compile the script and get the two functions. |
- v8::ScriptOrigin origin = |
- v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "test")); |
- v8::Local<v8::Script> script = v8::Script::Compile(source, &origin); |
- script->Run(); |
+ v8::ScriptOrigin origin = v8::ScriptOrigin(v8_str(isolate, "test")); |
+ v8::Local<v8::Script> script = |
+ v8::Script::Compile(context, source, &origin).ToLocalChecked(); |
+ script->Run(context).ToLocalChecked(); |
v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global()->Get(context, v8_str(isolate, "f")).ToLocalChecked()); |
v8::Local<v8::Function> g = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "g"))); |
+ env->Global()->Get(context, v8_str(isolate, "g")).ToLocalChecked()); |
// Get the script id knowing that internally it is a 32 integer. |
int script_id = script->GetUnboundScript()->GetId(); |
// Call f and g without break points. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Call f and g with break point on line 12. |
int sbp1 = SetScriptBreakPointByIdFromJS(env->GetIsolate(), script_id, 12, 0); |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
// Remove the break point again. |
break_point_hit_count = 0; |
ClearBreakPointFromJS(env->GetIsolate(), sbp1); |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Call f and g with break point on line 2. |
int sbp2 = SetScriptBreakPointByIdFromJS(env->GetIsolate(), script_id, 2, 0); |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
// Call f and g with break point on line 2, 4, 12, 14 and 15. |
@@ -1534,9 +1540,9 @@ TEST(ScriptBreakPointByIdThroughJavaScript) { |
int sbp5 = SetScriptBreakPointByIdFromJS(env->GetIsolate(), script_id, 14, 0); |
int sbp6 = SetScriptBreakPointByIdFromJS(env->GetIsolate(), script_id, 15, 0); |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(7, break_point_hit_count); |
// Remove all the break points again. |
@@ -1546,9 +1552,9 @@ TEST(ScriptBreakPointByIdThroughJavaScript) { |
ClearBreakPointFromJS(env->GetIsolate(), sbp4); |
ClearBreakPointFromJS(env->GetIsolate(), sbp5); |
ClearBreakPointFromJS(env->GetIsolate(), sbp6); |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1568,53 +1574,59 @@ TEST(ScriptBreakPointByIdThroughJavaScript) { |
TEST(EnableDisableScriptBreakPoint) { |
break_point_hit_count = 0; |
DebugLocalContext env; |
- v8::HandleScope scope(env->GetIsolate()); |
+ v8::Isolate* isolate = env->GetIsolate(); |
+ v8::HandleScope scope(isolate); |
+ v8::Local<v8::Context> context = env.context(); |
env.ExposeDebug(); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
- v8::Local<v8::String> script = v8::String::NewFromUtf8( |
- env->GetIsolate(), |
- "function f() {\n" |
- " a = 0; // line 1\n" |
- "};"); |
+ v8::Local<v8::String> script = v8_str(isolate, |
+ "function f() {\n" |
+ " a = 0; // line 1\n" |
+ "};"); |
// Compile the script and get function f. |
- v8::ScriptOrigin origin = |
- v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "test")); |
- v8::Script::Compile(script, &origin)->Run(); |
+ v8::ScriptOrigin origin = v8::ScriptOrigin(v8_str(isolate, "test")); |
+ v8::Script::Compile(context, script, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global()->Get(context, v8_str(isolate, "f")).ToLocalChecked()); |
// Set script break point on line 1 (in function f). |
- int sbp = SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test", 1, 0); |
+ int sbp = SetScriptBreakPointByNameFromJS(isolate, "test", 1, 0); |
// Call f while enabeling and disabling the script break point. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
- DisableScriptBreakPointFromJS(env->GetIsolate(), sbp); |
- f->Call(env->Global(), 0, NULL); |
+ DisableScriptBreakPointFromJS(isolate, sbp); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
- EnableScriptBreakPointFromJS(env->GetIsolate(), sbp); |
- f->Call(env->Global(), 0, NULL); |
+ EnableScriptBreakPointFromJS(isolate, sbp); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
- DisableScriptBreakPointFromJS(env->GetIsolate(), sbp); |
- f->Call(env->Global(), 0, NULL); |
+ DisableScriptBreakPointFromJS(isolate, sbp); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
- // Reload the script and get f again checking that the disabeling survives. |
- v8::Script::Compile(script, &origin)->Run(); |
+ // Reload the script and get f again checking that the disabling survives. |
+ v8::Script::Compile(context, script, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
- f->Call(env->Global(), 0, NULL); |
+ env->Global()->Get(context, v8_str(isolate, "f")).ToLocalChecked()); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
- EnableScriptBreakPointFromJS(env->GetIsolate(), sbp); |
- f->Call(env->Global(), 0, NULL); |
+ EnableScriptBreakPointFromJS(isolate, sbp); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(3, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1631,22 +1643,26 @@ TEST(ConditionalScriptBreakPoint) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
- v8::Local<v8::String> script = v8::String::NewFromUtf8( |
- env->GetIsolate(), |
- "count = 0;\n" |
- "function f() {\n" |
- " g(count++); // line 2\n" |
- "};\n" |
- "function g(x) {\n" |
- " var a=x; // line 5\n" |
- "};"); |
+ v8::Local<v8::String> script = v8_str(env->GetIsolate(), |
+ "count = 0;\n" |
+ "function f() {\n" |
+ " g(count++); // line 2\n" |
+ "};\n" |
+ "function g(x) {\n" |
+ " var a=x; // line 5\n" |
+ "};"); |
// Compile the script and get function f. |
- v8::ScriptOrigin origin = |
- v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "test")); |
- v8::Script::Compile(script, &origin)->Run(); |
+ v8::Local<v8::Context> context = env.context(); |
+ v8::ScriptOrigin origin = v8::ScriptOrigin(v8_str(env->GetIsolate(), "test")); |
+ v8::Script::Compile(context, script, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
// Set script break point on line 5 (in function g). |
int sbp1 = SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test", 5, 0); |
@@ -1654,29 +1670,34 @@ TEST(ConditionalScriptBreakPoint) { |
// Call f with different conditions on the script break point. |
break_point_hit_count = 0; |
ChangeScriptBreakPointConditionFromJS(env->GetIsolate(), sbp1, "false"); |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
ChangeScriptBreakPointConditionFromJS(env->GetIsolate(), sbp1, "true"); |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
ChangeScriptBreakPointConditionFromJS(env->GetIsolate(), sbp1, "x % 2 == 0"); |
break_point_hit_count = 0; |
for (int i = 0; i < 10; i++) { |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
} |
CHECK_EQ(5, break_point_hit_count); |
// Reload the script and get f again checking that the condition survives. |
- v8::Script::Compile(script, &origin)->Run(); |
+ v8::Script::Compile(context, script, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
break_point_hit_count = 0; |
for (int i = 0; i < 10; i++) { |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked(); |
} |
CHECK_EQ(5, break_point_hit_count); |
@@ -1694,18 +1715,22 @@ TEST(ScriptBreakPointIgnoreCount) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
- v8::Local<v8::String> script = v8::String::NewFromUtf8( |
- env->GetIsolate(), |
- "function f() {\n" |
- " a = 0; // line 1\n" |
- "};"); |
+ v8::Local<v8::String> script = v8_str(env->GetIsolate(), |
+ "function f() {\n" |
+ " a = 0; // line 1\n" |
+ "};"); |
// Compile the script and get function f. |
- v8::ScriptOrigin origin = |
- v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "test")); |
- v8::Script::Compile(script, &origin)->Run(); |
+ v8::Local<v8::Context> context = env.context(); |
+ v8::ScriptOrigin origin = v8::ScriptOrigin(v8_str(env->GetIsolate(), "test")); |
+ v8::Script::Compile(context, script, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
// Set script break point on line 1 (in function f). |
int sbp = SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test", 1, 0); |
@@ -1713,26 +1738,31 @@ TEST(ScriptBreakPointIgnoreCount) { |
// Call f with different ignores on the script break point. |
break_point_hit_count = 0; |
ChangeScriptBreakPointIgnoreCountFromJS(env->GetIsolate(), sbp, 1); |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
ChangeScriptBreakPointIgnoreCountFromJS(env->GetIsolate(), sbp, 5); |
break_point_hit_count = 0; |
for (int i = 0; i < 10; i++) { |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
} |
CHECK_EQ(5, break_point_hit_count); |
// Reload the script and get f again checking that the ignore survives. |
- v8::Script::Compile(script, &origin)->Run(); |
+ v8::Script::Compile(context, script, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
break_point_hit_count = 0; |
for (int i = 0; i < 10; i++) { |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
} |
CHECK_EQ(5, break_point_hit_count); |
@@ -1750,54 +1780,67 @@ TEST(ScriptBreakPointReload) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
+ v8::Local<v8::Context> context = env.context(); |
v8::Local<v8::Function> f; |
- v8::Local<v8::String> script = v8::String::NewFromUtf8( |
- env->GetIsolate(), |
- "function f() {\n" |
- " function h() {\n" |
- " a = 0; // line 2\n" |
- " }\n" |
- " b = 1; // line 4\n" |
- " return h();\n" |
- "}"); |
- |
- v8::ScriptOrigin origin_1 = |
- v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "1")); |
- v8::ScriptOrigin origin_2 = |
- v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "2")); |
+ v8::Local<v8::String> script = v8_str(env->GetIsolate(), |
+ "function f() {\n" |
+ " function h() {\n" |
+ " a = 0; // line 2\n" |
+ " }\n" |
+ " b = 1; // line 4\n" |
+ " return h();\n" |
+ "}"); |
+ |
+ v8::ScriptOrigin origin_1 = v8::ScriptOrigin(v8_str(env->GetIsolate(), "1")); |
+ v8::ScriptOrigin origin_2 = v8::ScriptOrigin(v8_str(env->GetIsolate(), "2")); |
// Set a script break point before the script is loaded. |
SetScriptBreakPointByNameFromJS(env->GetIsolate(), "1", 2, 0); |
// Compile the script and get the function. |
- v8::Script::Compile(script, &origin_1)->Run(); |
+ v8::Script::Compile(context, script, &origin_1) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
// Call f and check that the script break point is active. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
// Compile the script again with a different script data and get the |
// function. |
- v8::Script::Compile(script, &origin_2)->Run(); |
+ v8::Script::Compile(context, script, &origin_2) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
// Call f and check that no break points are set. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Compile the script again and get the function. |
- v8::Script::Compile(script, &origin_1)->Run(); |
+ v8::Script::Compile(context, script, &origin_1) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
// Call f and check that the script break point is active. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1814,39 +1857,47 @@ TEST(ScriptBreakPointMultiple) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
+ v8::Local<v8::Context> context = env.context(); |
v8::Local<v8::Function> f; |
- v8::Local<v8::String> script_f = |
- v8::String::NewFromUtf8(env->GetIsolate(), |
- "function f() {\n" |
- " a = 0; // line 1\n" |
- "}"); |
+ v8::Local<v8::String> script_f = v8_str(env->GetIsolate(), |
+ "function f() {\n" |
+ " a = 0; // line 1\n" |
+ "}"); |
v8::Local<v8::Function> g; |
- v8::Local<v8::String> script_g = |
- v8::String::NewFromUtf8(env->GetIsolate(), |
- "function g() {\n" |
- " b = 0; // line 1\n" |
- "}"); |
+ v8::Local<v8::String> script_g = v8_str(env->GetIsolate(), |
+ "function g() {\n" |
+ " b = 0; // line 1\n" |
+ "}"); |
- v8::ScriptOrigin origin = |
- v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "test")); |
+ v8::ScriptOrigin origin = v8::ScriptOrigin(v8_str(env->GetIsolate(), "test")); |
// Set a script break point before the scripts are loaded. |
int sbp = SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test", 1, 0); |
// Compile the scripts with same script data and get the functions. |
- v8::Script::Compile(script_f, &origin)->Run(); |
+ v8::Script::Compile(context, script_f, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
- v8::Script::Compile(script_g, &origin)->Run(); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
+ v8::Script::Compile(context, script_g, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
g = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "g"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "g")) |
+ .ToLocalChecked()); |
// Call f and g and check that the script break point is active. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
// Clear the script break point. |
@@ -1854,9 +1905,9 @@ TEST(ScriptBreakPointMultiple) { |
// Call f and g and check that the script break point is no longer active. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Set script break point with the scripts loaded. |
@@ -1864,9 +1915,9 @@ TEST(ScriptBreakPointMultiple) { |
// Call f and g and check that the script break point is active. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1883,18 +1934,18 @@ TEST(ScriptBreakPointLineOffset) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
+ v8::Local<v8::Context> context = env.context(); |
v8::Local<v8::Function> f; |
- v8::Local<v8::String> script = v8::String::NewFromUtf8( |
- env->GetIsolate(), |
- "function f() {\n" |
- " a = 0; // line 8 as this script has line offset 7\n" |
- " b = 0; // line 9 as this script has line offset 7\n" |
- "}"); |
+ v8::Local<v8::String> script = |
+ v8_str(env->GetIsolate(), |
+ "function f() {\n" |
+ " a = 0; // line 8 as this script has line offset 7\n" |
+ " b = 0; // line 9 as this script has line offset 7\n" |
+ "}"); |
// Create script origin both name and line offset. |
- v8::ScriptOrigin origin( |
- v8::String::NewFromUtf8(env->GetIsolate(), "test.html"), |
- v8::Integer::New(env->GetIsolate(), 7)); |
+ v8::ScriptOrigin origin(v8_str(env->GetIsolate(), "test.html"), |
+ v8::Integer::New(env->GetIsolate(), 7)); |
// Set two script break points before the script is loaded. |
int sbp1 = |
@@ -1903,13 +1954,18 @@ TEST(ScriptBreakPointLineOffset) { |
SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 9, 0); |
// Compile the script and get the function. |
- v8::Script::Compile(script, &origin)->Run(); |
+ v8::Script::Compile(context, script, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
// Call f and check that the script break point is active. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
// Clear the script break points. |
@@ -1918,7 +1974,7 @@ TEST(ScriptBreakPointLineOffset) { |
// Call f and check that no script break points are active. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Set a script break point with the script loaded. |
@@ -1926,7 +1982,7 @@ TEST(ScriptBreakPointLineOffset) { |
// Call f and check that the script break point is active. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -1947,23 +2003,24 @@ TEST(ScriptBreakPointLine) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
+ v8::Local<v8::Context> context = env.context(); |
v8::Local<v8::Function> f; |
v8::Local<v8::Function> g; |
v8::Local<v8::String> script = |
- v8::String::NewFromUtf8(env->GetIsolate(), |
- "a = 0 // line 0\n" |
- "function f() {\n" |
- " a = 1; // line 2\n" |
- "}\n" |
- " a = 2; // line 4\n" |
- " /* xx */ function g() { // line 5\n" |
- " function h() { // line 6\n" |
- " a = 3; // line 7\n" |
- " }\n" |
- " h(); // line 9\n" |
- " a = 4; // line 10\n" |
- " }\n" |
- " a=5; // line 12"); |
+ v8_str(env->GetIsolate(), |
+ "a = 0 // line 0\n" |
+ "function f() {\n" |
+ " a = 1; // line 2\n" |
+ "}\n" |
+ " a = 2; // line 4\n" |
+ " /* xx */ function g() { // line 5\n" |
+ " function h() { // line 6\n" |
+ " a = 3; // line 7\n" |
+ " }\n" |
+ " h(); // line 9\n" |
+ " a = 4; // line 10\n" |
+ " }\n" |
+ " a=5; // line 12"); |
// Set a couple script break point before the script is loaded. |
int sbp1 = |
@@ -1975,26 +2032,32 @@ TEST(ScriptBreakPointLine) { |
// Compile the script and get the function. |
break_point_hit_count = 0; |
- v8::ScriptOrigin origin( |
- v8::String::NewFromUtf8(env->GetIsolate(), "test.html"), |
- v8::Integer::New(env->GetIsolate(), 0)); |
- v8::Script::Compile(script, &origin)->Run(); |
+ v8::ScriptOrigin origin(v8_str(env->GetIsolate(), "test.html"), |
+ v8::Integer::New(env->GetIsolate(), 0)); |
+ v8::Script::Compile(context, script, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
g = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "g"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "g")) |
+ .ToLocalChecked()); |
// Check that a break point was hit when the script was run. |
CHECK_EQ(1, break_point_hit_count); |
CHECK_EQ(0, StrLength(last_function_hit)); |
// Call f and check that the script break point. |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
CHECK_EQ(0, strcmp("f", last_function_hit)); |
// Call g and check that the script break point. |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(3, break_point_hit_count); |
CHECK_EQ(0, strcmp("g", last_function_hit)); |
@@ -2004,7 +2067,7 @@ TEST(ScriptBreakPointLine) { |
SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 6, -1); |
// Call g and check that the script break point in h is hit. |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(4, break_point_hit_count); |
CHECK_EQ(0, strcmp("h", last_function_hit)); |
@@ -2016,13 +2079,16 @@ TEST(ScriptBreakPointLine) { |
int sbp5 = |
SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 4, -1); |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
- g->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Reload the script which should hit two break points. |
break_point_hit_count = 0; |
- v8::Script::Compile(script, &origin)->Run(); |
+ v8::Script::Compile(context, script, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
CHECK_EQ(0, StrLength(last_function_hit)); |
@@ -2032,7 +2098,10 @@ TEST(ScriptBreakPointLine) { |
// Reload the script which should hit three break points. |
break_point_hit_count = 0; |
- v8::Script::Compile(script, &origin)->Run(); |
+ v8::Script::Compile(context, script, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
CHECK_EQ(3, break_point_hit_count); |
CHECK_EQ(0, StrLength(last_function_hit)); |
@@ -2042,7 +2111,10 @@ TEST(ScriptBreakPointLine) { |
ClearBreakPointFromJS(env->GetIsolate(), sbp5); |
ClearBreakPointFromJS(env->GetIsolate(), sbp6); |
break_point_hit_count = 0; |
- v8::Script::Compile(script, &origin)->Run(); |
+ v8::Script::Compile(context, script, &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -2058,19 +2130,22 @@ TEST(ScriptBreakPointLineTopLevel) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
+ v8::Local<v8::Context> context = env.context(); |
v8::Local<v8::String> script = |
- v8::String::NewFromUtf8(env->GetIsolate(), |
- "function f() {\n" |
- " a = 1; // line 1\n" |
- "}\n" |
- "a = 2; // line 3\n"); |
+ v8_str(env->GetIsolate(), |
+ "function f() {\n" |
+ " a = 1; // line 1\n" |
+ "}\n" |
+ "a = 2; // line 3\n"); |
v8::Local<v8::Function> f; |
{ |
v8::HandleScope scope(env->GetIsolate()); |
CompileRunWithOrigin(script, "test.html"); |
} |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
CcTest::heap()->CollectAllGarbage(); |
@@ -2078,7 +2153,7 @@ TEST(ScriptBreakPointLineTopLevel) { |
// Call f and check that there was no break points. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Recompile and run script and check that break point was hit. |
@@ -2089,7 +2164,9 @@ TEST(ScriptBreakPointLineTopLevel) { |
// Call f and check that there are still no break points. |
break_point_hit_count = 0; |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
CHECK_EQ(0, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -2106,12 +2183,11 @@ TEST(ScriptBreakPointTopLevelCrash) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
- v8::Local<v8::String> script_source = |
- v8::String::NewFromUtf8(env->GetIsolate(), |
- "function f() {\n" |
- " return 0;\n" |
- "}\n" |
- "f()"); |
+ v8::Local<v8::String> script_source = v8_str(env->GetIsolate(), |
+ "function f() {\n" |
+ " return 0;\n" |
+ "}\n" |
+ "f()"); |
int sbp1 = |
SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 3, -1); |
@@ -2138,6 +2214,7 @@ TEST(RemoveBreakPointInBreak) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
+ v8::Local<v8::Context> context = env.context(); |
v8::Local<v8::Function> foo = |
CompileFunction(&env, "function foo(){a=1;}", "foo"); |
@@ -2147,11 +2224,11 @@ TEST(RemoveBreakPointInBreak) { |
debug_event_remove_break_point = SetBreakPoint(foo, 0); |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -2165,23 +2242,32 @@ TEST(DebuggerStatement) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
+ v8::Local<v8::Context> context = env.context(); |
+ v8::Script::Compile(context, |
+ v8_str(env->GetIsolate(), "function bar(){debugger}")) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), "function bar(){debugger}")) |
- ->Run(); |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), |
- "function foo(){debugger;debugger;}"))->Run(); |
+ context, v8_str(env->GetIsolate(), "function foo(){debugger;debugger;}")) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::Local<v8::Function> foo = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "foo"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "foo")) |
+ .ToLocalChecked()); |
v8::Local<v8::Function> bar = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "bar"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "bar")) |
+ .ToLocalChecked()); |
// Run function with debugger statement |
- bar->Call(env->Global(), 0, NULL); |
+ bar->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
// Run function with two debugger statement |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(3, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -2194,21 +2280,26 @@ TEST(DebuggerStatementBreakpoint) { |
break_point_hit_count = 0; |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
+ v8::Local<v8::Context> context = env.context(); |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), "function foo(){debugger;}")) |
- ->Run(); |
+ v8::Script::Compile(context, |
+ v8_str(env->GetIsolate(), "function foo(){debugger;}")) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::Local<v8::Function> foo = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "foo"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "foo")) |
+ .ToLocalChecked()); |
// The debugger statement triggers breakpoint hit |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
int bp = SetBreakPoint(foo, 0); |
// Set breakpoint does not duplicate hits |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
ClearBreakPoint(bp); |
@@ -2234,21 +2325,17 @@ TEST(DebugEvaluate) { |
// Different expected vaules of x and a when in a break point (u = undefined, |
// d = Hello, world!). |
- struct EvaluateCheck checks_uu[] = { |
- {"x", v8::Undefined(isolate)}, |
- {"a", v8::Undefined(isolate)}, |
- {NULL, v8::Handle<v8::Value>()} |
- }; |
+ struct EvaluateCheck checks_uu[] = {{"x", v8::Undefined(isolate)}, |
+ {"a", v8::Undefined(isolate)}, |
+ {NULL, v8::Local<v8::Value>()}}; |
struct EvaluateCheck checks_hu[] = { |
- {"x", v8::String::NewFromUtf8(env->GetIsolate(), "Hello, world!")}, |
- {"a", v8::Undefined(isolate)}, |
- {NULL, v8::Handle<v8::Value>()} |
- }; |
+ {"x", v8_str(env->GetIsolate(), "Hello, world!")}, |
+ {"a", v8::Undefined(isolate)}, |
+ {NULL, v8::Local<v8::Value>()}}; |
struct EvaluateCheck checks_hh[] = { |
- {"x", v8::String::NewFromUtf8(env->GetIsolate(), "Hello, world!")}, |
- {"a", v8::String::NewFromUtf8(env->GetIsolate(), "Hello, world!")}, |
- {NULL, v8::Handle<v8::Value>()} |
- }; |
+ {"x", v8_str(env->GetIsolate(), "Hello, world!")}, |
+ {"a", v8_str(env->GetIsolate(), "Hello, world!")}, |
+ {NULL, v8::Local<v8::Value>()}}; |
// Simple test function. The "y=0" is in the function foo to provide a break |
// location. For "y=0" the "y" is at position 15 in the foo function |
@@ -2265,24 +2352,25 @@ TEST(DebugEvaluate) { |
const int foo_break_position_1 = 15; |
const int foo_break_position_2 = 29; |
+ v8::Local<v8::Context> context = env.context(); |
// Arguments with one parameter "Hello, world!" |
- v8::Handle<v8::Value> argv_foo[1] = { |
- v8::String::NewFromUtf8(env->GetIsolate(), "Hello, world!")}; |
+ v8::Local<v8::Value> argv_foo[1] = { |
+ v8_str(env->GetIsolate(), "Hello, world!")}; |
// Call foo with breakpoint set before a=x and undefined as parameter. |
int bp = SetBreakPoint(foo, foo_break_position_1); |
checks = checks_uu; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// Call foo with breakpoint set before a=x and parameter "Hello, world!". |
checks = checks_hu; |
- foo->Call(env->Global(), 1, argv_foo); |
+ foo->Call(context, env->Global(), 1, argv_foo).ToLocalChecked(); |
// Call foo with breakpoint set after a=x and parameter "Hello, world!". |
ClearBreakPoint(bp); |
SetBreakPoint(foo, foo_break_position_2); |
checks = checks_hh; |
- foo->Call(env->Global(), 1, argv_foo); |
+ foo->Call(context, env->Global(), 1, argv_foo).ToLocalChecked(); |
// Test that overriding Object.prototype will not interfere into evaluation |
// on call frame. |
@@ -2301,14 +2389,14 @@ TEST(DebugEvaluate) { |
const int zoo_break_position = 50; |
// Arguments with one parameter "Hello, world!" |
- v8::Handle<v8::Value> argv_zoo[1] = { |
- v8::String::NewFromUtf8(env->GetIsolate(), "Hello, world!")}; |
+ v8::Local<v8::Value> argv_zoo[1] = { |
+ v8_str(env->GetIsolate(), "Hello, world!")}; |
// Call zoo with breakpoint set at y=0. |
DebugEventCounterClear(); |
bp = SetBreakPoint(zoo, zoo_break_position); |
checks = checks_hu; |
- zoo->Call(env->Global(), 1, argv_zoo); |
+ zoo->Call(context, env->Global(), 1, argv_zoo).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
ClearBreakPoint(bp); |
@@ -2335,29 +2423,25 @@ TEST(DebugEvaluate) { |
// Call bar setting breakpoint before a=x in barbar and undefined as |
// parameter. |
checks = checks_uu; |
- v8::Handle<v8::Value> argv_bar_1[2] = { |
- v8::Undefined(isolate), |
- v8::Number::New(isolate, barbar_break_position) |
- }; |
- bar->Call(env->Global(), 2, argv_bar_1); |
+ v8::Local<v8::Value> argv_bar_1[2] = { |
+ v8::Undefined(isolate), v8::Number::New(isolate, barbar_break_position)}; |
+ bar->Call(context, env->Global(), 2, argv_bar_1).ToLocalChecked(); |
// Call bar setting breakpoint before a=x in barbar and parameter |
// "Hello, world!". |
checks = checks_hu; |
- v8::Handle<v8::Value> argv_bar_2[2] = { |
- v8::String::NewFromUtf8(env->GetIsolate(), "Hello, world!"), |
- v8::Number::New(env->GetIsolate(), barbar_break_position) |
- }; |
- bar->Call(env->Global(), 2, argv_bar_2); |
+ v8::Local<v8::Value> argv_bar_2[2] = { |
+ v8_str(env->GetIsolate(), "Hello, world!"), |
+ v8::Number::New(env->GetIsolate(), barbar_break_position)}; |
+ bar->Call(context, env->Global(), 2, argv_bar_2).ToLocalChecked(); |
// Call bar setting breakpoint after a=x in barbar and parameter |
// "Hello, world!". |
checks = checks_hh; |
- v8::Handle<v8::Value> argv_bar_3[2] = { |
- v8::String::NewFromUtf8(env->GetIsolate(), "Hello, world!"), |
- v8::Number::New(env->GetIsolate(), barbar_break_position + 1) |
- }; |
- bar->Call(env->Global(), 2, argv_bar_3); |
+ v8::Local<v8::Value> argv_bar_3[2] = { |
+ v8_str(env->GetIsolate(), "Hello, world!"), |
+ v8::Number::New(env->GetIsolate(), barbar_break_position + 1)}; |
+ bar->Call(context, env->Global(), 2, argv_bar_3).ToLocalChecked(); |
v8::Debug::SetDebugEventListener(NULL); |
CheckDebuggerUnloaded(); |
@@ -2379,6 +2463,7 @@ TEST(ConditionalBreakpointWithCodeGenerationDisallowed) { |
v8::Debug::SetDebugEventListener(CheckDebugEvent); |
+ v8::Local<v8::Context> context = env.context(); |
v8::Local<v8::Function> foo = CompileFunction(&env, |
"function foo(x) {\n" |
" var s = 'String value2';\n" |
@@ -2391,7 +2476,7 @@ TEST(ConditionalBreakpointWithCodeGenerationDisallowed) { |
debugEventCount = 0; |
env->AllowCodeGenerationFromStrings(false); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, debugEventCount); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -2400,18 +2485,25 @@ TEST(ConditionalBreakpointWithCodeGenerationDisallowed) { |
bool checkedDebugEvals = true; |
-v8::Handle<v8::Function> checkGlobalEvalFunction; |
-v8::Handle<v8::Function> checkFrameEvalFunction; |
+v8::Local<v8::Function> checkGlobalEvalFunction; |
+v8::Local<v8::Function> checkFrameEvalFunction; |
static void CheckDebugEval(const v8::Debug::EventDetails& eventDetails) { |
if (eventDetails.GetEvent() == v8::Break) { |
++debugEventCount; |
v8::HandleScope handleScope(CcTest::isolate()); |
- v8::Handle<v8::Value> args[] = { eventDetails.GetExecutionState() }; |
- CHECK(checkGlobalEvalFunction->Call( |
- eventDetails.GetEventContext()->Global(), 1, args)->IsTrue()); |
- CHECK(checkFrameEvalFunction->Call( |
- eventDetails.GetEventContext()->Global(), 1, args)->IsTrue()); |
+ v8::Local<v8::Value> args[] = {eventDetails.GetExecutionState()}; |
+ CHECK( |
+ checkGlobalEvalFunction->Call(eventDetails.GetEventContext(), |
+ eventDetails.GetEventContext()->Global(), |
+ 1, args) |
+ .ToLocalChecked() |
+ ->IsTrue()); |
+ CHECK(checkFrameEvalFunction->Call(eventDetails.GetEventContext(), |
+ eventDetails.GetEventContext()->Global(), |
+ 1, args) |
+ .ToLocalChecked() |
+ ->IsTrue()); |
} |
} |
@@ -2426,6 +2518,7 @@ TEST(DebugEvaluateWithCodeGenerationDisallowed) { |
v8::Debug::SetDebugEventListener(CheckDebugEval); |
+ v8::Local<v8::Context> context = env.context(); |
v8::Local<v8::Function> foo = CompileFunction(&env, |
"var global = 'Global';\n" |
"function foo(x) {\n" |
@@ -2447,7 +2540,7 @@ TEST(DebugEvaluateWithCodeGenerationDisallowed) { |
"checkFrameEval"); |
debugEventCount = 0; |
env->AllowCodeGenerationFromStrings(false); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, debugEventCount); |
checkGlobalEvalFunction.Clear(); |
@@ -2541,7 +2634,7 @@ DebugProcessDebugMessagesData process_debug_messages_data; |
static void DebugProcessDebugMessagesHandler( |
const v8::Debug::Message& message) { |
- v8::Handle<v8::String> json = message.GetJSON(); |
+ v8::Local<v8::String> json = message.GetJSON(); |
v8::String::Utf8Value utf8(json); |
EvaluateResult* array_item = process_debug_messages_data.current(); |
@@ -2565,8 +2658,11 @@ TEST(DebugEvaluateWithoutStack) { |
const char* source = |
"var v1 = 'Pinguin';\n function getAnimal() { return 'Capy' + 'bara'; }"; |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), source)) |
- ->Run(); |
+ v8::Local<v8::Context> context = env.context(); |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), source)) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::Debug::ProcessDebugMessages(); |
@@ -2639,7 +2735,8 @@ TEST(DebugStepLinear) { |
step_action = StepIn; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ v8::Local<v8::Context> context = env.context(); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// With stepping all break locations are hit. |
CHECK_EQ(4, break_point_hit_count); |
@@ -2652,7 +2749,7 @@ TEST(DebugStepLinear) { |
SetBreakPoint(foo, 3); |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// Without stepping only active break points are hit. |
CHECK_EQ(1, break_point_hit_count); |
@@ -2685,23 +2782,25 @@ TEST(DebugStepKeyedLoadLoop) { |
"y=0\n", |
"foo"); |
+ v8::Local<v8::Context> context = env.context(); |
// Create array [0,1,2,3,4,5,6,7,8,9] |
v8::Local<v8::Array> a = v8::Array::New(env->GetIsolate(), 10); |
for (int i = 0; i < 10; i++) { |
- a->Set(v8::Number::New(env->GetIsolate(), i), |
- v8::Number::New(env->GetIsolate(), i)); |
+ CHECK(a->Set(context, v8::Number::New(env->GetIsolate(), i), |
+ v8::Number::New(env->GetIsolate(), i)) |
+ .FromJust()); |
} |
// Call function without any break points to ensure inlining is in place. |
const int kArgc = 1; |
- v8::Handle<v8::Value> args[kArgc] = { a }; |
- foo->Call(env->Global(), kArgc, args); |
+ v8::Local<v8::Value> args[kArgc] = {a}; |
+ foo->Call(context, env->Global(), kArgc, args).ToLocalChecked(); |
// Set up break point and step through the function. |
SetBreakPoint(foo, 3); |
step_action = StepNext; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), kArgc, args); |
+ foo->Call(context, env->Global(), kArgc, args).ToLocalChecked(); |
// With stepping all break locations are hit. |
CHECK_EQ(45, break_point_hit_count); |
@@ -2733,23 +2832,25 @@ TEST(DebugStepKeyedStoreLoop) { |
"y=0\n", |
"foo"); |
+ v8::Local<v8::Context> context = env.context(); |
// Create array [0,1,2,3,4,5,6,7,8,9] |
v8::Local<v8::Array> a = v8::Array::New(env->GetIsolate(), 10); |
for (int i = 0; i < 10; i++) { |
- a->Set(v8::Number::New(env->GetIsolate(), i), |
- v8::Number::New(env->GetIsolate(), i)); |
+ CHECK(a->Set(context, v8::Number::New(env->GetIsolate(), i), |
+ v8::Number::New(env->GetIsolate(), i)) |
+ .FromJust()); |
} |
// Call function without any break points to ensure inlining is in place. |
const int kArgc = 1; |
- v8::Handle<v8::Value> args[kArgc] = { a }; |
- foo->Call(env->Global(), kArgc, args); |
+ v8::Local<v8::Value> args[kArgc] = {a}; |
+ foo->Call(context, env->Global(), kArgc, args).ToLocalChecked(); |
// Set up break point and step through the function. |
SetBreakPoint(foo, 3); |
step_action = StepNext; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), kArgc, args); |
+ foo->Call(context, env->Global(), kArgc, args).ToLocalChecked(); |
// With stepping all break locations are hit. |
CHECK_EQ(44, break_point_hit_count); |
@@ -2767,6 +2868,7 @@ TEST(DebugStepNamedLoadLoop) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping of named load. |
v8::Local<v8::Function> foo = CompileFunction( |
&env, |
@@ -2787,13 +2889,13 @@ TEST(DebugStepNamedLoadLoop) { |
"foo"); |
// Call function without any break points to ensure inlining is in place. |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// Set up break point and step through the function. |
SetBreakPoint(foo, 4); |
step_action = StepNext; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// With stepping all break locations are hit. |
CHECK_EQ(65, break_point_hit_count); |
@@ -2811,6 +2913,7 @@ static void DoDebugStepNamedStoreLoop(int expected) { |
v8::Debug::SetDebugEventListener(DebugEventStep); |
// Create a function for testing stepping of named store. |
+ v8::Local<v8::Context> context = env.context(); |
v8::Local<v8::Function> foo = CompileFunction( |
&env, |
"function foo() {\n" |
@@ -2822,13 +2925,13 @@ static void DoDebugStepNamedStoreLoop(int expected) { |
"foo"); |
// Call function without any break points to ensure inlining is in place. |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// Set up break point and step through the function. |
SetBreakPoint(foo, 3); |
step_action = StepNext; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// With stepping all expected break locations are hit. |
CHECK_EQ(expected, break_point_hit_count); |
@@ -2850,6 +2953,7 @@ TEST(DebugStepLinearMixedICs) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. |
v8::Local<v8::Function> foo = CompileFunction(&env, |
"function bar() {};" |
@@ -2866,7 +2970,7 @@ TEST(DebugStepLinearMixedICs) { |
step_action = StepIn; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// With stepping all break locations are hit. |
CHECK_EQ(11, break_point_hit_count); |
@@ -2879,7 +2983,7 @@ TEST(DebugStepLinearMixedICs) { |
SetBreakPoint(foo, 0); |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// Without stepping only active break points are hit. |
CHECK_EQ(1, break_point_hit_count); |
@@ -2896,6 +3000,7 @@ TEST(DebugStepDeclarations) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const char* src = "function foo() { " |
@@ -2913,7 +3018,7 @@ TEST(DebugStepDeclarations) { |
// Stepping through the declarations. |
step_action = StepIn; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(6, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -2929,6 +3034,7 @@ TEST(DebugStepLocals) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const char* src = "function foo() { " |
@@ -2946,7 +3052,7 @@ TEST(DebugStepLocals) { |
// Stepping through the declarations. |
step_action = StepIn; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(6, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -2963,6 +3069,7 @@ TEST(DebugStepIf) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const int argc = 1; |
@@ -2982,15 +3089,15 @@ TEST(DebugStepIf) { |
// Stepping through the true part. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_true[argc] = { v8::True(isolate) }; |
- foo->Call(env->Global(), argc, argv_true); |
+ v8::Local<v8::Value> argv_true[argc] = {v8::True(isolate)}; |
+ foo->Call(context, env->Global(), argc, argv_true).ToLocalChecked(); |
CHECK_EQ(4, break_point_hit_count); |
// Stepping through the false part. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_false[argc] = { v8::False(isolate) }; |
- foo->Call(env->Global(), argc, argv_false); |
+ v8::Local<v8::Value> argv_false[argc] = {v8::False(isolate)}; |
+ foo->Call(context, env->Global(), argc, argv_false).ToLocalChecked(); |
CHECK_EQ(5, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -3007,6 +3114,7 @@ TEST(DebugStepSwitch) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const int argc = 1; |
@@ -3032,22 +3140,22 @@ TEST(DebugStepSwitch) { |
// One case with fall-through. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_1[argc] = { v8::Number::New(isolate, 1) }; |
- foo->Call(env->Global(), argc, argv_1); |
+ v8::Local<v8::Value> argv_1[argc] = {v8::Number::New(isolate, 1)}; |
+ foo->Call(context, env->Global(), argc, argv_1).ToLocalChecked(); |
CHECK_EQ(6, break_point_hit_count); |
// Another case. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_2[argc] = { v8::Number::New(isolate, 2) }; |
- foo->Call(env->Global(), argc, argv_2); |
+ v8::Local<v8::Value> argv_2[argc] = {v8::Number::New(isolate, 2)}; |
+ foo->Call(context, env->Global(), argc, argv_2).ToLocalChecked(); |
CHECK_EQ(5, break_point_hit_count); |
// Last case. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_3[argc] = { v8::Number::New(isolate, 3) }; |
- foo->Call(env->Global(), argc, argv_3); |
+ v8::Local<v8::Value> argv_3[argc] = {v8::Number::New(isolate, 3)}; |
+ foo->Call(context, env->Global(), argc, argv_3).ToLocalChecked(); |
CHECK_EQ(7, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -3064,6 +3172,7 @@ TEST(DebugStepWhile) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const int argc = 1; |
@@ -3080,22 +3189,22 @@ TEST(DebugStepWhile) { |
// Looping 0 times. We still should break at the while-condition once. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_0[argc] = { v8::Number::New(isolate, 0) }; |
- foo->Call(env->Global(), argc, argv_0); |
+ v8::Local<v8::Value> argv_0[argc] = {v8::Number::New(isolate, 0)}; |
+ foo->Call(context, env->Global(), argc, argv_0).ToLocalChecked(); |
CHECK_EQ(3, break_point_hit_count); |
// Looping 10 times. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_10[argc] = { v8::Number::New(isolate, 10) }; |
- foo->Call(env->Global(), argc, argv_10); |
+ v8::Local<v8::Value> argv_10[argc] = {v8::Number::New(isolate, 10)}; |
+ foo->Call(context, env->Global(), argc, argv_10).ToLocalChecked(); |
CHECK_EQ(23, break_point_hit_count); |
// Looping 100 times. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_100[argc] = { v8::Number::New(isolate, 100) }; |
- foo->Call(env->Global(), argc, argv_100); |
+ v8::Local<v8::Value> argv_100[argc] = {v8::Number::New(isolate, 100)}; |
+ foo->Call(context, env->Global(), argc, argv_100).ToLocalChecked(); |
CHECK_EQ(203, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -3112,6 +3221,7 @@ TEST(DebugStepDoWhile) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const int argc = 1; |
@@ -3128,22 +3238,22 @@ TEST(DebugStepDoWhile) { |
// Looping 0 times. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_0[argc] = {v8::Number::New(isolate, 0)}; |
- foo->Call(env->Global(), argc, argv_0); |
+ v8::Local<v8::Value> argv_0[argc] = {v8::Number::New(isolate, 0)}; |
+ foo->Call(context, env->Global(), argc, argv_0).ToLocalChecked(); |
CHECK_EQ(4, break_point_hit_count); |
// Looping 10 times. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_10[argc] = { v8::Number::New(isolate, 10) }; |
- foo->Call(env->Global(), argc, argv_10); |
+ v8::Local<v8::Value> argv_10[argc] = {v8::Number::New(isolate, 10)}; |
+ foo->Call(context, env->Global(), argc, argv_10).ToLocalChecked(); |
CHECK_EQ(22, break_point_hit_count); |
// Looping 100 times. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_100[argc] = { v8::Number::New(isolate, 100) }; |
- foo->Call(env->Global(), argc, argv_100); |
+ v8::Local<v8::Value> argv_100[argc] = {v8::Number::New(isolate, 100)}; |
+ foo->Call(context, env->Global(), argc, argv_100).ToLocalChecked(); |
CHECK_EQ(202, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -3160,6 +3270,7 @@ TEST(DebugStepFor) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const int argc = 1; |
@@ -3177,22 +3288,22 @@ TEST(DebugStepFor) { |
// Looping 0 times. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_0[argc] = {v8::Number::New(isolate, 0)}; |
- foo->Call(env->Global(), argc, argv_0); |
+ v8::Local<v8::Value> argv_0[argc] = {v8::Number::New(isolate, 0)}; |
+ foo->Call(context, env->Global(), argc, argv_0).ToLocalChecked(); |
CHECK_EQ(4, break_point_hit_count); |
// Looping 10 times. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_10[argc] = { v8::Number::New(isolate, 10) }; |
- foo->Call(env->Global(), argc, argv_10); |
+ v8::Local<v8::Value> argv_10[argc] = {v8::Number::New(isolate, 10)}; |
+ foo->Call(context, env->Global(), argc, argv_10).ToLocalChecked(); |
CHECK_EQ(34, break_point_hit_count); |
// Looping 100 times. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_100[argc] = { v8::Number::New(isolate, 100) }; |
- foo->Call(env->Global(), argc, argv_100); |
+ v8::Local<v8::Value> argv_100[argc] = {v8::Number::New(isolate, 100)}; |
+ foo->Call(context, env->Global(), argc, argv_100).ToLocalChecked(); |
CHECK_EQ(304, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -3209,6 +3320,7 @@ TEST(DebugStepForContinue) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const int argc = 1; |
@@ -3226,7 +3338,7 @@ TEST(DebugStepForContinue) { |
"}" |
"foo()"; |
v8::Local<v8::Function> foo = CompileFunction(&env, src, "foo"); |
- v8::Handle<v8::Value> result; |
+ v8::Local<v8::Value> result; |
SetBreakPoint(foo, 8); // "var a = 0;" |
// Each loop generates 4 or 5 steps depending on whether a is equal. |
@@ -3234,17 +3346,17 @@ TEST(DebugStepForContinue) { |
// Looping 10 times. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_10[argc] = { v8::Number::New(isolate, 10) }; |
- result = foo->Call(env->Global(), argc, argv_10); |
- CHECK_EQ(5, result->Int32Value()); |
+ v8::Local<v8::Value> argv_10[argc] = {v8::Number::New(isolate, 10)}; |
+ result = foo->Call(context, env->Global(), argc, argv_10).ToLocalChecked(); |
+ CHECK_EQ(5, result->Int32Value(context).FromJust()); |
CHECK_EQ(62, break_point_hit_count); |
// Looping 100 times. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_100[argc] = { v8::Number::New(isolate, 100) }; |
- result = foo->Call(env->Global(), argc, argv_100); |
- CHECK_EQ(50, result->Int32Value()); |
+ v8::Local<v8::Value> argv_100[argc] = {v8::Number::New(isolate, 100)}; |
+ result = foo->Call(context, env->Global(), argc, argv_100).ToLocalChecked(); |
+ CHECK_EQ(50, result->Int32Value(context).FromJust()); |
CHECK_EQ(557, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -3261,6 +3373,7 @@ TEST(DebugStepForBreak) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const int argc = 1; |
@@ -3278,7 +3391,7 @@ TEST(DebugStepForBreak) { |
"}" |
"foo()"; |
v8::Local<v8::Function> foo = CompileFunction(&env, src, "foo"); |
- v8::Handle<v8::Value> result; |
+ v8::Local<v8::Value> result; |
SetBreakPoint(foo, 8); // "var a = 0;" |
// Each loop generates 5 steps except for the last (when break is executed) |
@@ -3287,17 +3400,17 @@ TEST(DebugStepForBreak) { |
// Looping 10 times. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_10[argc] = { v8::Number::New(isolate, 10) }; |
- result = foo->Call(env->Global(), argc, argv_10); |
- CHECK_EQ(9, result->Int32Value()); |
+ v8::Local<v8::Value> argv_10[argc] = {v8::Number::New(isolate, 10)}; |
+ result = foo->Call(context, env->Global(), argc, argv_10).ToLocalChecked(); |
+ CHECK_EQ(9, result->Int32Value(context).FromJust()); |
CHECK_EQ(64, break_point_hit_count); |
// Looping 100 times. |
step_action = StepIn; |
break_point_hit_count = 0; |
- v8::Handle<v8::Value> argv_100[argc] = { v8::Number::New(isolate, 100) }; |
- result = foo->Call(env->Global(), argc, argv_100); |
- CHECK_EQ(99, result->Int32Value()); |
+ v8::Local<v8::Value> argv_100[argc] = {v8::Number::New(isolate, 100)}; |
+ result = foo->Call(context, env->Global(), argc, argv_100).ToLocalChecked(); |
+ CHECK_EQ(99, result->Int32Value(context).FromJust()); |
CHECK_EQ(604, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -3313,6 +3426,7 @@ TEST(DebugStepForIn) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
v8::Local<v8::Function> foo; |
@@ -3328,7 +3442,7 @@ TEST(DebugStepForIn) { |
step_action = StepIn; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(8, break_point_hit_count); |
// Create a function for testing stepping. Run it to allow it to get |
@@ -3345,7 +3459,7 @@ TEST(DebugStepForIn) { |
step_action = StepIn; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(10, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -3361,6 +3475,7 @@ TEST(DebugStepWith) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const char* src = "function foo(x) { " |
@@ -3369,15 +3484,17 @@ TEST(DebugStepWith) { |
" with (b) {}" |
"}" |
"foo()"; |
- env->Global()->Set(v8::String::NewFromUtf8(env->GetIsolate(), "b"), |
- v8::Object::New(env->GetIsolate())); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str(env->GetIsolate(), "b"), |
+ v8::Object::New(env->GetIsolate())) |
+ .FromJust()); |
v8::Local<v8::Function> foo = CompileFunction(&env, src, "foo"); |
- v8::Handle<v8::Value> result; |
+ v8::Local<v8::Value> result; |
SetBreakPoint(foo, 8); // "var a = {};" |
step_action = StepIn; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(4, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -3394,6 +3511,7 @@ TEST(DebugConditional) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const char* src = "function foo(x) { " |
@@ -3407,14 +3525,14 @@ TEST(DebugConditional) { |
step_action = StepIn; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(4, break_point_hit_count); |
step_action = StepIn; |
break_point_hit_count = 0; |
const int argc = 1; |
- v8::Handle<v8::Value> argv_true[argc] = { v8::True(isolate) }; |
- foo->Call(env->Global(), argc, argv_true); |
+ v8::Local<v8::Value> argv_true[argc] = {v8::True(isolate)}; |
+ foo->Call(context, env->Global(), argc, argv_true).ToLocalChecked(); |
CHECK_EQ(4, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -3435,6 +3553,7 @@ TEST(StepInOutSimple) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStepSequence); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const char* src = "function a() {b();c();}; " |
@@ -3448,7 +3567,7 @@ TEST(StepInOutSimple) { |
step_action = StepIn; |
break_point_hit_count = 0; |
expected_step_sequence = "abcbaca"; |
- a->Call(env->Global(), 0, NULL); |
+ a->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
@@ -3456,7 +3575,7 @@ TEST(StepInOutSimple) { |
step_action = StepNext; |
break_point_hit_count = 0; |
expected_step_sequence = "aaa"; |
- a->Call(env->Global(), 0, NULL); |
+ a->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
@@ -3464,7 +3583,7 @@ TEST(StepInOutSimple) { |
step_action = StepOut; |
break_point_hit_count = 0; |
expected_step_sequence = "a"; |
- a->Call(env->Global(), 0, NULL); |
+ a->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
@@ -3486,6 +3605,7 @@ TEST(StepInOutTree) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStepSequence); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const char* src = "function a() {b(c(d()),d());c(d());d()}; " |
@@ -3500,7 +3620,7 @@ TEST(StepInOutTree) { |
step_action = StepIn; |
break_point_hit_count = 0; |
expected_step_sequence = "adacadabcbadacada"; |
- a->Call(env->Global(), 0, NULL); |
+ a->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
@@ -3508,7 +3628,7 @@ TEST(StepInOutTree) { |
step_action = StepNext; |
break_point_hit_count = 0; |
expected_step_sequence = "aaaa"; |
- a->Call(env->Global(), 0, NULL); |
+ a->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
@@ -3516,7 +3636,7 @@ TEST(StepInOutTree) { |
step_action = StepOut; |
break_point_hit_count = 0; |
expected_step_sequence = "a"; |
- a->Call(env->Global(), 0, NULL); |
+ a->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
@@ -3538,6 +3658,7 @@ TEST(StepInOutBranch) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStepSequence); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. Run it to allow it to get |
// optimized. |
const char* src = "function a() {b(false);c();}; " |
@@ -3551,7 +3672,7 @@ TEST(StepInOutBranch) { |
step_action = StepIn; |
break_point_hit_count = 0; |
expected_step_sequence = "abbaca"; |
- a->Call(env->Global(), 0, NULL); |
+ a->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
@@ -3575,9 +3696,10 @@ TEST(DebugStepNatives) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
step_action = StepIn; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// With stepping all break locations are hit. |
CHECK_EQ(3, break_point_hit_count); |
@@ -3589,7 +3711,7 @@ TEST(DebugStepNatives) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// Without stepping only active break points are hit. |
CHECK_EQ(1, break_point_hit_count); |
@@ -3614,9 +3736,10 @@ TEST(DebugStepFunctionApply) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStep); |
+ v8::Local<v8::Context> context = env.context(); |
step_action = StepIn; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// With stepping all break locations are hit. |
CHECK_EQ(7, break_point_hit_count); |
@@ -3628,7 +3751,7 @@ TEST(DebugStepFunctionApply) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// Without stepping only the debugger statement is hit. |
CHECK_EQ(1, break_point_hit_count); |
@@ -3644,6 +3767,7 @@ TEST(DebugStepFunctionCall) { |
v8::Isolate* isolate = env->GetIsolate(); |
v8::HandleScope scope(isolate); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. |
v8::Local<v8::Function> foo = CompileFunction( |
&env, |
@@ -3663,14 +3787,14 @@ TEST(DebugStepFunctionCall) { |
// Check stepping where the if condition in bar is false. |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(6, break_point_hit_count); |
// Check stepping where the if condition in bar is true. |
break_point_hit_count = 0; |
const int argc = 1; |
- v8::Handle<v8::Value> argv[argc] = { v8::True(isolate) }; |
- foo->Call(env->Global(), argc, argv); |
+ v8::Local<v8::Value> argv[argc] = {v8::True(isolate)}; |
+ foo->Call(context, env->Global(), argc, argv).ToLocalChecked(); |
CHECK_EQ(8, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -3680,7 +3804,7 @@ TEST(DebugStepFunctionCall) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// Without stepping only the debugger statement is hit. |
CHECK_EQ(1, break_point_hit_count); |
@@ -3696,6 +3820,7 @@ TEST(DebugStepFunctionCallApply) { |
v8::Isolate* isolate = env->GetIsolate(); |
v8::HandleScope scope(isolate); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. |
v8::Local<v8::Function> foo = |
CompileFunction(&env, |
@@ -3712,7 +3837,7 @@ TEST(DebugStepFunctionCallApply) { |
step_action = StepIn; |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(5, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
@@ -3722,7 +3847,7 @@ TEST(DebugStepFunctionCallApply) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// Without stepping only the debugger statement is hit. |
CHECK_EQ(1, break_point_hit_count); |
@@ -3741,6 +3866,7 @@ TEST(PauseInScript) { |
// Register a debug event listener which counts. |
v8::Debug::SetDebugEventListener(DebugEventCounter); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a script that returns a function. |
const char* src = "(function (evt) {})"; |
const char* script_name = "StepInHandlerTest"; |
@@ -3749,12 +3875,12 @@ TEST(PauseInScript) { |
SetScriptBreakPointByNameFromJS(env->GetIsolate(), script_name, 0, -1); |
break_point_hit_count = 0; |
- v8::ScriptOrigin origin( |
- v8::String::NewFromUtf8(env->GetIsolate(), script_name), |
- v8::Integer::New(env->GetIsolate(), 0)); |
- v8::Handle<v8::Script> script = v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), src), &origin); |
- v8::Local<v8::Value> r = script->Run(); |
+ v8::ScriptOrigin origin(v8_str(env->GetIsolate(), script_name), |
+ v8::Integer::New(env->GetIsolate(), 0)); |
+ v8::Local<v8::Script> script = |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), src), &origin) |
+ .ToLocalChecked(); |
+ v8::Local<v8::Value> r = script->Run(context).ToLocalChecked(); |
CHECK(r->IsFunction()); |
CHECK_EQ(1, break_point_hit_count); |
@@ -3783,6 +3909,7 @@ TEST(BreakOnException) { |
v8::HandleScope scope(env->GetIsolate()); |
env.ExposeDebug(); |
+ v8::Local<v8::Context> context = env.context(); |
// Create functions for testing break on exception. |
CompileFunction(&env, "function throws(){throw 1;}", "throws"); |
v8::Local<v8::Function> caught = |
@@ -3801,135 +3928,136 @@ TEST(BreakOnException) { |
&env, "function caughtFinally(){L:try{throws();}finally{break L;}}", |
"caughtFinally"); |
- v8::V8::AddMessageListener(MessageCallbackCount); |
+ env->GetIsolate()->AddMessageListener(MessageCallbackCount); |
v8::Debug::SetDebugEventListener(DebugEventCounter); |
// Initial state should be no break on exceptions. |
DebugEventCounterClear(); |
MessageCallbackCountClear(); |
- caught->Call(env->Global(), 0, NULL); |
+ caught->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(0, 0, 0); |
- notCaught->Call(env->Global(), 0, NULL); |
+ CHECK(notCaught->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(0, 0, 1); |
- notCaughtFinally->Call(env->Global(), 0, NULL); |
+ CHECK(notCaughtFinally->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(0, 0, 2); |
- edgeCaseFinally->Call(env->Global(), 0, NULL); |
+ edgeCaseFinally->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(0, 0, 2); |
// No break on exception |
DebugEventCounterClear(); |
MessageCallbackCountClear(); |
ChangeBreakOnException(false, false); |
- caught->Call(env->Global(), 0, NULL); |
+ caught->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(0, 0, 0); |
- notCaught->Call(env->Global(), 0, NULL); |
+ CHECK(notCaught->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(0, 0, 1); |
- notCaughtFinally->Call(env->Global(), 0, NULL); |
+ CHECK(notCaughtFinally->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(0, 0, 2); |
- edgeCaseFinally->Call(env->Global(), 0, NULL); |
+ edgeCaseFinally->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(0, 0, 2); |
// Break on uncaught exception |
DebugEventCounterClear(); |
MessageCallbackCountClear(); |
ChangeBreakOnException(false, true); |
- caught->Call(env->Global(), 0, NULL); |
+ caught->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(0, 0, 0); |
- notCaught->Call(env->Global(), 0, NULL); |
+ CHECK(notCaught->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(1, 1, 1); |
- notCaughtFinally->Call(env->Global(), 0, NULL); |
+ CHECK(notCaughtFinally->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(2, 2, 2); |
- edgeCaseFinally->Call(env->Global(), 0, NULL); |
+ edgeCaseFinally->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(3, 3, 2); |
// Break on exception and uncaught exception |
DebugEventCounterClear(); |
MessageCallbackCountClear(); |
ChangeBreakOnException(true, true); |
- caught->Call(env->Global(), 0, NULL); |
+ caught->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(1, 0, 0); |
- notCaught->Call(env->Global(), 0, NULL); |
+ CHECK(notCaught->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(2, 1, 1); |
- notCaughtFinally->Call(env->Global(), 0, NULL); |
+ CHECK(notCaughtFinally->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(3, 2, 2); |
- edgeCaseFinally->Call(env->Global(), 0, NULL); |
+ edgeCaseFinally->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(4, 3, 2); |
// Break on exception |
DebugEventCounterClear(); |
MessageCallbackCountClear(); |
ChangeBreakOnException(true, false); |
- caught->Call(env->Global(), 0, NULL); |
+ caught->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(1, 0, 0); |
- notCaught->Call(env->Global(), 0, NULL); |
+ CHECK(notCaught->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(2, 1, 1); |
- notCaughtFinally->Call(env->Global(), 0, NULL); |
+ CHECK(notCaughtFinally->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(3, 2, 2); |
- edgeCaseFinally->Call(env->Global(), 0, NULL); |
+ edgeCaseFinally->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(4, 3, 2); |
// No break on exception using JavaScript |
DebugEventCounterClear(); |
MessageCallbackCountClear(); |
ChangeBreakOnExceptionFromJS(env->GetIsolate(), false, false); |
- caught->Call(env->Global(), 0, NULL); |
+ caught->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(0, 0, 0); |
- notCaught->Call(env->Global(), 0, NULL); |
+ CHECK(notCaught->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(0, 0, 1); |
- notCaughtFinally->Call(env->Global(), 0, NULL); |
+ CHECK(notCaughtFinally->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(0, 0, 2); |
- edgeCaseFinally->Call(env->Global(), 0, NULL); |
+ edgeCaseFinally->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(0, 0, 2); |
// Break on uncaught exception using JavaScript |
DebugEventCounterClear(); |
MessageCallbackCountClear(); |
ChangeBreakOnExceptionFromJS(env->GetIsolate(), false, true); |
- caught->Call(env->Global(), 0, NULL); |
+ caught->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(0, 0, 0); |
- notCaught->Call(env->Global(), 0, NULL); |
+ CHECK(notCaught->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(1, 1, 1); |
- notCaughtFinally->Call(env->Global(), 0, NULL); |
+ CHECK(notCaughtFinally->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(2, 2, 2); |
- edgeCaseFinally->Call(env->Global(), 0, NULL); |
+ edgeCaseFinally->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(3, 3, 2); |
// Break on exception and uncaught exception using JavaScript |
DebugEventCounterClear(); |
MessageCallbackCountClear(); |
ChangeBreakOnExceptionFromJS(env->GetIsolate(), true, true); |
- caught->Call(env->Global(), 0, NULL); |
+ caught->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(1, 0, 0); |
- notCaught->Call(env->Global(), 0, NULL); |
+ CHECK(notCaught->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(2, 1, 1); |
- notCaughtFinally->Call(env->Global(), 0, NULL); |
+ CHECK(notCaughtFinally->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(3, 2, 2); |
- edgeCaseFinally->Call(env->Global(), 0, NULL); |
+ edgeCaseFinally->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(4, 3, 2); |
// Break on exception using JavaScript |
DebugEventCounterClear(); |
MessageCallbackCountClear(); |
ChangeBreakOnExceptionFromJS(env->GetIsolate(), true, false); |
- caught->Call(env->Global(), 0, NULL); |
+ caught->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(1, 0, 0); |
- notCaught->Call(env->Global(), 0, NULL); |
+ CHECK(notCaught->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(2, 1, 1); |
- notCaughtFinally->Call(env->Global(), 0, NULL); |
+ CHECK(notCaughtFinally->Call(context, env->Global(), 0, NULL).IsEmpty()); |
DebugEventCounterCheck(3, 2, 2); |
- edgeCaseFinally->Call(env->Global(), 0, NULL); |
+ edgeCaseFinally->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
DebugEventCounterCheck(4, 3, 2); |
v8::Debug::SetDebugEventListener(NULL); |
CheckDebuggerUnloaded(); |
- v8::V8::RemoveMessageListeners(MessageCallbackCount); |
+ env->GetIsolate()->RemoveMessageListeners(MessageCallbackCount); |
} |
-static void try_finally_original_message(v8::Handle<v8::Message> message, |
- v8::Handle<v8::Value> data) { |
- CHECK_EQ(2, message->GetLineNumber()); |
- CHECK_EQ(2, message->GetStartColumn()); |
+static void try_finally_original_message(v8::Local<v8::Message> message, |
+ v8::Local<v8::Value> data) { |
+ v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext(); |
+ CHECK_EQ(2, message->GetLineNumber(context).FromJust()); |
+ CHECK_EQ(2, message->GetStartColumn(context).FromJust()); |
message_callback_count++; |
} |
@@ -3938,11 +4066,11 @@ TEST(TryFinallyOriginalMessage) { |
// Test that the debugger plays nicely with the pending message. |
message_callback_count = 0; |
DebugEventCounterClear(); |
- v8::V8::AddMessageListener(try_finally_original_message); |
- v8::Debug::SetDebugEventListener(DebugEventCounter); |
- ChangeBreakOnException(true, true); |
DebugLocalContext env; |
v8::Isolate* isolate = CcTest::isolate(); |
+ isolate->AddMessageListener(try_finally_original_message); |
+ v8::Debug::SetDebugEventListener(DebugEventCounter); |
+ ChangeBreakOnException(true, true); |
v8::HandleScope scope(isolate); |
CompileRun( |
"try {\n" |
@@ -3951,7 +4079,7 @@ TEST(TryFinallyOriginalMessage) { |
"}\n"); |
DebugEventCounterCheck(1, 1, 1); |
v8::Debug::SetDebugEventListener(NULL); |
- v8::V8::RemoveMessageListeners(try_finally_original_message); |
+ isolate->RemoveMessageListeners(try_finally_original_message); |
} |
@@ -3968,7 +4096,7 @@ TEST(EvalJSInDebugEventListenerOnNativeReThrownException) { |
debug_event_listener_callback = noThrowJS; |
debug_event_listener_callback_result = 2; |
- v8::V8::AddMessageListener(MessageCallbackCount); |
+ env->GetIsolate()->AddMessageListener(MessageCallbackCount); |
v8::Debug::SetDebugEventListener(DebugEventCounter); |
// Break on uncaught exception |
ChangeBreakOnException(false, true); |
@@ -3978,8 +4106,8 @@ TEST(EvalJSInDebugEventListenerOnNativeReThrownException) { |
// ReThrow native error |
{ |
v8::TryCatch tryCatch(env->GetIsolate()); |
- env->GetIsolate()->ThrowException(v8::Exception::TypeError( |
- v8::String::NewFromUtf8(env->GetIsolate(), "Type error"))); |
+ env->GetIsolate()->ThrowException( |
+ v8::Exception::TypeError(v8_str(env->GetIsolate(), "Type error"))); |
CHECK(tryCatch.HasCaught()); |
tryCatch.ReThrow(); |
} |
@@ -3999,13 +4127,14 @@ TEST(BreakOnCompileException) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
+ v8::Local<v8::Context> context = env.context(); |
// For this test, we want to break on uncaught exceptions: |
ChangeBreakOnException(false, true); |
// Create a function for checking the function when hitting a break point. |
frame_count = CompileFunction(&env, frame_count_source, "frame_count"); |
- v8::V8::AddMessageListener(MessageCallbackCount); |
+ env->GetIsolate()->AddMessageListener(MessageCallbackCount); |
v8::Debug::SetDebugEventListener(DebugEventCounter); |
DebugEventCounterClear(); |
@@ -4018,30 +4147,36 @@ TEST(BreakOnCompileException) { |
CHECK_EQ(-1, last_js_stack_height); |
// Throws SyntaxError: Unexpected end of input |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), "+++")); |
+ CHECK( |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), "+++")).IsEmpty()); |
CHECK_EQ(1, exception_hit_count); |
CHECK_EQ(1, uncaught_exception_hit_count); |
CHECK_EQ(1, message_callback_count); |
CHECK_EQ(0, last_js_stack_height); // No JavaScript stack. |
// Throws SyntaxError: Unexpected identifier |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), "x x")); |
+ CHECK( |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), "x x")).IsEmpty()); |
CHECK_EQ(2, exception_hit_count); |
CHECK_EQ(2, uncaught_exception_hit_count); |
CHECK_EQ(2, message_callback_count); |
CHECK_EQ(0, last_js_stack_height); // No JavaScript stack. |
// Throws SyntaxError: Unexpected end of input |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), "eval('+++')")) |
- ->Run(); |
+ CHECK(v8::Script::Compile(context, v8_str(env->GetIsolate(), "eval('+++')")) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .IsEmpty()); |
CHECK_EQ(3, exception_hit_count); |
CHECK_EQ(3, uncaught_exception_hit_count); |
CHECK_EQ(3, message_callback_count); |
CHECK_EQ(1, last_js_stack_height); |
// Throws SyntaxError: Unexpected identifier |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), "eval('x x')")) |
- ->Run(); |
+ CHECK(v8::Script::Compile(context, v8_str(env->GetIsolate(), "eval('x x')")) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .IsEmpty()); |
CHECK_EQ(4, exception_hit_count); |
CHECK_EQ(4, uncaught_exception_hit_count); |
CHECK_EQ(4, message_callback_count); |
@@ -4064,6 +4199,7 @@ TEST(StepWithException) { |
// Register a debug event listener which steps and counts. |
v8::Debug::SetDebugEventListener(DebugEventStepSequence); |
+ v8::Local<v8::Context> context = env.context(); |
// Create functions for testing stepping. |
const char* src = "function a() { n(); }; " |
"function b() { c(); }; " |
@@ -4080,7 +4216,7 @@ TEST(StepWithException) { |
step_action = StepIn; |
break_point_hit_count = 0; |
expected_step_sequence = "aa"; |
- a->Call(env->Global(), 0, NULL); |
+ CHECK(a->Call(context, env->Global(), 0, NULL).IsEmpty()); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
@@ -4090,7 +4226,7 @@ TEST(StepWithException) { |
step_action = StepIn; |
break_point_hit_count = 0; |
expected_step_sequence = "bcc"; |
- b->Call(env->Global(), 0, NULL); |
+ CHECK(b->Call(context, env->Global(), 0, NULL).IsEmpty()); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
// Step through invocation of d + e. |
@@ -4100,7 +4236,7 @@ TEST(StepWithException) { |
step_action = StepIn; |
break_point_hit_count = 0; |
expected_step_sequence = "ddedd"; |
- d->Call(env->Global(), 0, NULL); |
+ d->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
@@ -4109,7 +4245,7 @@ TEST(StepWithException) { |
step_action = StepIn; |
break_point_hit_count = 0; |
expected_step_sequence = "ddeedd"; |
- d->Call(env->Global(), 0, NULL); |
+ d->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
@@ -4120,7 +4256,7 @@ TEST(StepWithException) { |
step_action = StepIn; |
break_point_hit_count = 0; |
expected_step_sequence = "ffghhff"; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
@@ -4129,7 +4265,7 @@ TEST(StepWithException) { |
step_action = StepIn; |
break_point_hit_count = 0; |
expected_step_sequence = "ffghhhff"; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(StrLength(expected_step_sequence), |
break_point_hit_count); |
@@ -4151,6 +4287,7 @@ TEST(DebugBreak) { |
// Register a debug event listener which sets the break flag and counts. |
v8::Debug::SetDebugEventListener(DebugEventBreak); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. |
const char* src = "function f0() {}" |
"function f1(x1) {}" |
@@ -4162,16 +4299,15 @@ TEST(DebugBreak) { |
v8::Local<v8::Function> f3 = CompileFunction(&env, src, "f3"); |
// Call the function to make sure it is compiled. |
- v8::Handle<v8::Value> argv[] = { v8::Number::New(isolate, 1), |
- v8::Number::New(isolate, 1), |
- v8::Number::New(isolate, 1), |
- v8::Number::New(isolate, 1) }; |
+ v8::Local<v8::Value> argv[] = { |
+ v8::Number::New(isolate, 1), v8::Number::New(isolate, 1), |
+ v8::Number::New(isolate, 1), v8::Number::New(isolate, 1)}; |
// Call all functions to make sure that they are compiled. |
- f0->Call(env->Global(), 0, NULL); |
- f1->Call(env->Global(), 0, NULL); |
- f2->Call(env->Global(), 0, NULL); |
- f3->Call(env->Global(), 0, NULL); |
+ f0->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
+ f1->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
+ f2->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
+ f3->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// Set the debug break flag. |
v8::Debug::DebugBreak(env->GetIsolate()); |
@@ -4180,10 +4316,10 @@ TEST(DebugBreak) { |
// Call all functions with different argument count. |
break_point_hit_count = 0; |
for (unsigned int i = 0; i < arraysize(argv); i++) { |
- f0->Call(env->Global(), i, argv); |
- f1->Call(env->Global(), i, argv); |
- f2->Call(env->Global(), i, argv); |
- f3->Call(env->Global(), i, argv); |
+ f0->Call(context, env->Global(), i, argv).ToLocalChecked(); |
+ f1->Call(context, env->Global(), i, argv).ToLocalChecked(); |
+ f2->Call(context, env->Global(), i, argv).ToLocalChecked(); |
+ f3->Call(context, env->Global(), i, argv).ToLocalChecked(); |
} |
// One break for each function called. |
@@ -4204,6 +4340,7 @@ TEST(DisableBreak) { |
// Register a debug event listener which sets the break flag and counts. |
v8::Debug::SetDebugEventListener(DebugEventCounter); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing stepping. |
const char* src = "function f() {g()};function g(){i=0; while(i<10){i++}}"; |
v8::Local<v8::Function> f = CompileFunction(&env, src, "f"); |
@@ -4219,18 +4356,18 @@ TEST(DisableBreak) { |
// Call all functions with different argument count. |
break_point_hit_count = 0; |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
{ |
v8::Debug::DebugBreak(env->GetIsolate()); |
i::Isolate* isolate = reinterpret_cast<i::Isolate*>(env->GetIsolate()); |
v8::internal::DisableBreak disable_break(isolate->debug(), true); |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
} |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
// Get rid of the debug event listener. |
@@ -4275,22 +4412,31 @@ TEST(NoBreakWhenBootstrapping) { |
static void NamedEnum(const v8::PropertyCallbackInfo<v8::Array>& info) { |
- v8::Handle<v8::Array> result = v8::Array::New(info.GetIsolate(), 3); |
- result->Set(v8::Integer::New(info.GetIsolate(), 0), |
- v8::String::NewFromUtf8(info.GetIsolate(), "a")); |
- result->Set(v8::Integer::New(info.GetIsolate(), 1), |
- v8::String::NewFromUtf8(info.GetIsolate(), "b")); |
- result->Set(v8::Integer::New(info.GetIsolate(), 2), |
- v8::String::NewFromUtf8(info.GetIsolate(), "c")); |
+ v8::Local<v8::Array> result = v8::Array::New(info.GetIsolate(), 3); |
+ v8::Local<v8::Context> context = info.GetIsolate()->GetCurrentContext(); |
+ CHECK(result->Set(context, v8::Integer::New(info.GetIsolate(), 0), |
+ v8_str(info.GetIsolate(), "a")) |
+ .FromJust()); |
+ CHECK(result->Set(context, v8::Integer::New(info.GetIsolate(), 1), |
+ v8_str(info.GetIsolate(), "b")) |
+ .FromJust()); |
+ CHECK(result->Set(context, v8::Integer::New(info.GetIsolate(), 2), |
+ v8_str(info.GetIsolate(), "c")) |
+ .FromJust()); |
info.GetReturnValue().Set(result); |
} |
static void IndexedEnum(const v8::PropertyCallbackInfo<v8::Array>& info) { |
v8::Isolate* isolate = info.GetIsolate(); |
- v8::Handle<v8::Array> result = v8::Array::New(isolate, 2); |
- result->Set(v8::Integer::New(isolate, 0), v8::Number::New(isolate, 1)); |
- result->Set(v8::Integer::New(isolate, 1), v8::Number::New(isolate, 10)); |
+ v8::Local<v8::Array> result = v8::Array::New(isolate, 2); |
+ v8::Local<v8::Context> context = info.GetIsolate()->GetCurrentContext(); |
+ CHECK(result->Set(context, v8::Integer::New(isolate, 0), |
+ v8::Number::New(isolate, 1)) |
+ .FromJust()); |
+ CHECK(result->Set(context, v8::Integer::New(isolate, 1), |
+ v8::Number::New(isolate, 10)) |
+ .FromJust()); |
info.GetReturnValue().Set(result); |
} |
@@ -4300,13 +4446,13 @@ static void NamedGetter(v8::Local<v8::Name> name, |
if (name->IsSymbol()) return; |
v8::String::Utf8Value n(v8::Local<v8::String>::Cast(name)); |
if (strcmp(*n, "a") == 0) { |
- info.GetReturnValue().Set(v8::String::NewFromUtf8(info.GetIsolate(), "AA")); |
+ info.GetReturnValue().Set(v8_str(info.GetIsolate(), "AA")); |
return; |
} else if (strcmp(*n, "b") == 0) { |
- info.GetReturnValue().Set(v8::String::NewFromUtf8(info.GetIsolate(), "BB")); |
+ info.GetReturnValue().Set(v8_str(info.GetIsolate(), "BB")); |
return; |
} else if (strcmp(*n, "c") == 0) { |
- info.GetReturnValue().Set(v8::String::NewFromUtf8(info.GetIsolate(), "CC")); |
+ info.GetReturnValue().Set(v8_str(info.GetIsolate(), "CC")); |
return; |
} else { |
info.GetReturnValue().SetUndefined(); |
@@ -4329,75 +4475,83 @@ TEST(InterceptorPropertyMirror) { |
v8::HandleScope scope(isolate); |
env.ExposeDebug(); |
+ v8::Local<v8::Context> context = env.context(); |
// Create object with named interceptor. |
- v8::Handle<v8::ObjectTemplate> named = v8::ObjectTemplate::New(isolate); |
+ v8::Local<v8::ObjectTemplate> named = v8::ObjectTemplate::New(isolate); |
named->SetHandler(v8::NamedPropertyHandlerConfiguration( |
NamedGetter, NULL, NULL, NULL, NamedEnum)); |
- env->Global()->Set( |
- v8::String::NewFromUtf8(isolate, "intercepted_named"), |
- named->NewInstance()); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str(isolate, "intercepted_named"), |
+ named->NewInstance(context).ToLocalChecked()) |
+ .FromJust()); |
// Create object with indexed interceptor. |
- v8::Handle<v8::ObjectTemplate> indexed = v8::ObjectTemplate::New(isolate); |
+ v8::Local<v8::ObjectTemplate> indexed = v8::ObjectTemplate::New(isolate); |
indexed->SetHandler(v8::IndexedPropertyHandlerConfiguration( |
IndexedGetter, NULL, NULL, NULL, IndexedEnum)); |
- env->Global()->Set( |
- v8::String::NewFromUtf8(isolate, "intercepted_indexed"), |
- indexed->NewInstance()); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str(isolate, "intercepted_indexed"), |
+ indexed->NewInstance(context).ToLocalChecked()) |
+ .FromJust()); |
// Create object with both named and indexed interceptor. |
- v8::Handle<v8::ObjectTemplate> both = v8::ObjectTemplate::New(isolate); |
+ v8::Local<v8::ObjectTemplate> both = v8::ObjectTemplate::New(isolate); |
both->SetHandler(v8::NamedPropertyHandlerConfiguration( |
NamedGetter, NULL, NULL, NULL, NamedEnum)); |
both->SetHandler(v8::IndexedPropertyHandlerConfiguration( |
IndexedGetter, NULL, NULL, NULL, IndexedEnum)); |
- env->Global()->Set( |
- v8::String::NewFromUtf8(isolate, "intercepted_both"), |
- both->NewInstance()); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str(isolate, "intercepted_both"), |
+ both->NewInstance(context).ToLocalChecked()) |
+ .FromJust()); |
// Get mirrors for the three objects with interceptor. |
CompileRun( |
"var named_mirror = debug.MakeMirror(intercepted_named);" |
"var indexed_mirror = debug.MakeMirror(intercepted_indexed);" |
"var both_mirror = debug.MakeMirror(intercepted_both)"); |
- CHECK(CompileRun( |
- "named_mirror instanceof debug.ObjectMirror")->BooleanValue()); |
- CHECK(CompileRun( |
- "indexed_mirror instanceof debug.ObjectMirror")->BooleanValue()); |
- CHECK(CompileRun( |
- "both_mirror instanceof debug.ObjectMirror")->BooleanValue()); |
+ CHECK(CompileRun("named_mirror instanceof debug.ObjectMirror") |
+ ->BooleanValue(context) |
+ .FromJust()); |
+ CHECK(CompileRun("indexed_mirror instanceof debug.ObjectMirror") |
+ ->BooleanValue(context) |
+ .FromJust()); |
+ CHECK(CompileRun("both_mirror instanceof debug.ObjectMirror") |
+ ->BooleanValue(context) |
+ .FromJust()); |
// Get the property names from the interceptors |
CompileRun( |
"named_names = named_mirror.propertyNames();" |
"indexed_names = indexed_mirror.propertyNames();" |
"both_names = both_mirror.propertyNames()"); |
- CHECK_EQ(3, CompileRun("named_names.length")->Int32Value()); |
- CHECK_EQ(2, CompileRun("indexed_names.length")->Int32Value()); |
- CHECK_EQ(5, CompileRun("both_names.length")->Int32Value()); |
+ CHECK_EQ(3, CompileRun("named_names.length")->Int32Value(context).FromJust()); |
+ CHECK_EQ(2, |
+ CompileRun("indexed_names.length")->Int32Value(context).FromJust()); |
+ CHECK_EQ(5, CompileRun("both_names.length")->Int32Value(context).FromJust()); |
// Check the expected number of properties. |
const char* source; |
source = "named_mirror.properties().length"; |
- CHECK_EQ(3, CompileRun(source)->Int32Value()); |
+ CHECK_EQ(3, CompileRun(source)->Int32Value(context).FromJust()); |
source = "indexed_mirror.properties().length"; |
- CHECK_EQ(2, CompileRun(source)->Int32Value()); |
+ CHECK_EQ(2, CompileRun(source)->Int32Value(context).FromJust()); |
source = "both_mirror.properties().length"; |
- CHECK_EQ(5, CompileRun(source)->Int32Value()); |
+ CHECK_EQ(5, CompileRun(source)->Int32Value(context).FromJust()); |
// 1 is PropertyKind.Named; |
source = "both_mirror.properties(1).length"; |
- CHECK_EQ(3, CompileRun(source)->Int32Value()); |
+ CHECK_EQ(3, CompileRun(source)->Int32Value(context).FromJust()); |
// 2 is PropertyKind.Indexed; |
source = "both_mirror.properties(2).length"; |
- CHECK_EQ(2, CompileRun(source)->Int32Value()); |
+ CHECK_EQ(2, CompileRun(source)->Int32Value(context).FromJust()); |
// 3 is PropertyKind.Named | PropertyKind.Indexed; |
source = "both_mirror.properties(3).length"; |
- CHECK_EQ(5, CompileRun(source)->Int32Value()); |
+ CHECK_EQ(5, CompileRun(source)->Int32Value(context).FromJust()); |
// Get the interceptor properties for the object with only named interceptor. |
CompileRun("var named_values = named_mirror.properties()"); |
@@ -4407,10 +4561,10 @@ TEST(InterceptorPropertyMirror) { |
EmbeddedVector<char, SMALL_STRING_BUFFER_SIZE> buffer; |
SNPrintF(buffer, |
"named_values[%d] instanceof debug.PropertyMirror", i); |
- CHECK(CompileRun(buffer.start())->BooleanValue()); |
+ CHECK(CompileRun(buffer.start())->BooleanValue(context).FromJust()); |
SNPrintF(buffer, "named_values[%d].isNative()", i); |
- CHECK(CompileRun(buffer.start())->BooleanValue()); |
+ CHECK(CompileRun(buffer.start())->BooleanValue(context).FromJust()); |
} |
// Get the interceptor properties for the object with only indexed |
@@ -4422,7 +4576,7 @@ TEST(InterceptorPropertyMirror) { |
EmbeddedVector<char, SMALL_STRING_BUFFER_SIZE> buffer; |
SNPrintF(buffer, |
"indexed_values[%d] instanceof debug.PropertyMirror", i); |
- CHECK(CompileRun(buffer.start())->BooleanValue()); |
+ CHECK(CompileRun(buffer.start())->BooleanValue(context).FromJust()); |
} |
// Get the interceptor properties for the object with both types of |
@@ -4433,24 +4587,24 @@ TEST(InterceptorPropertyMirror) { |
for (int i = 0; i < 5; i++) { |
EmbeddedVector<char, SMALL_STRING_BUFFER_SIZE> buffer; |
SNPrintF(buffer, "both_values[%d] instanceof debug.PropertyMirror", i); |
- CHECK(CompileRun(buffer.start())->BooleanValue()); |
+ CHECK(CompileRun(buffer.start())->BooleanValue(context).FromJust()); |
} |
// Check the property names. |
source = "both_values[0].name() == 'a'"; |
- CHECK(CompileRun(source)->BooleanValue()); |
+ CHECK(CompileRun(source)->BooleanValue(context).FromJust()); |
source = "both_values[1].name() == 'b'"; |
- CHECK(CompileRun(source)->BooleanValue()); |
+ CHECK(CompileRun(source)->BooleanValue(context).FromJust()); |
source = "both_values[2].name() == 'c'"; |
- CHECK(CompileRun(source)->BooleanValue()); |
+ CHECK(CompileRun(source)->BooleanValue(context).FromJust()); |
source = "both_values[3].name() == 1"; |
- CHECK(CompileRun(source)->BooleanValue()); |
+ CHECK(CompileRun(source)->BooleanValue(context).FromJust()); |
source = "both_values[4].name() == 10"; |
- CHECK(CompileRun(source)->BooleanValue()); |
+ CHECK(CompileRun(source)->BooleanValue(context).FromJust()); |
} |
@@ -4461,30 +4615,43 @@ TEST(HiddenPrototypePropertyMirror) { |
v8::HandleScope scope(isolate); |
env.ExposeDebug(); |
- v8::Handle<v8::FunctionTemplate> t0 = v8::FunctionTemplate::New(isolate); |
- t0->InstanceTemplate()->Set(v8::String::NewFromUtf8(isolate, "x"), |
+ v8::Local<v8::FunctionTemplate> t0 = v8::FunctionTemplate::New(isolate); |
+ t0->InstanceTemplate()->Set(v8_str(isolate, "x"), |
v8::Number::New(isolate, 0)); |
- v8::Handle<v8::FunctionTemplate> t1 = v8::FunctionTemplate::New(isolate); |
+ v8::Local<v8::FunctionTemplate> t1 = v8::FunctionTemplate::New(isolate); |
t1->SetHiddenPrototype(true); |
- t1->InstanceTemplate()->Set(v8::String::NewFromUtf8(isolate, "y"), |
+ t1->InstanceTemplate()->Set(v8_str(isolate, "y"), |
v8::Number::New(isolate, 1)); |
- v8::Handle<v8::FunctionTemplate> t2 = v8::FunctionTemplate::New(isolate); |
+ v8::Local<v8::FunctionTemplate> t2 = v8::FunctionTemplate::New(isolate); |
t2->SetHiddenPrototype(true); |
- t2->InstanceTemplate()->Set(v8::String::NewFromUtf8(isolate, "z"), |
+ t2->InstanceTemplate()->Set(v8_str(isolate, "z"), |
v8::Number::New(isolate, 2)); |
- v8::Handle<v8::FunctionTemplate> t3 = v8::FunctionTemplate::New(isolate); |
- t3->InstanceTemplate()->Set(v8::String::NewFromUtf8(isolate, "u"), |
+ v8::Local<v8::FunctionTemplate> t3 = v8::FunctionTemplate::New(isolate); |
+ t3->InstanceTemplate()->Set(v8_str(isolate, "u"), |
v8::Number::New(isolate, 3)); |
+ v8::Local<v8::Context> context = env.context(); |
// Create object and set them on the global object. |
- v8::Handle<v8::Object> o0 = t0->GetFunction()->NewInstance(); |
- env->Global()->Set(v8::String::NewFromUtf8(isolate, "o0"), o0); |
- v8::Handle<v8::Object> o1 = t1->GetFunction()->NewInstance(); |
- env->Global()->Set(v8::String::NewFromUtf8(isolate, "o1"), o1); |
- v8::Handle<v8::Object> o2 = t2->GetFunction()->NewInstance(); |
- env->Global()->Set(v8::String::NewFromUtf8(isolate, "o2"), o2); |
- v8::Handle<v8::Object> o3 = t3->GetFunction()->NewInstance(); |
- env->Global()->Set(v8::String::NewFromUtf8(isolate, "o3"), o3); |
+ v8::Local<v8::Object> o0 = t0->GetFunction(context) |
+ .ToLocalChecked() |
+ ->NewInstance(context) |
+ .ToLocalChecked(); |
+ CHECK(env->Global()->Set(context, v8_str(isolate, "o0"), o0).FromJust()); |
+ v8::Local<v8::Object> o1 = t1->GetFunction(context) |
+ .ToLocalChecked() |
+ ->NewInstance(context) |
+ .ToLocalChecked(); |
+ CHECK(env->Global()->Set(context, v8_str(isolate, "o1"), o1).FromJust()); |
+ v8::Local<v8::Object> o2 = t2->GetFunction(context) |
+ .ToLocalChecked() |
+ ->NewInstance(context) |
+ .ToLocalChecked(); |
+ CHECK(env->Global()->Set(context, v8_str(isolate, "o2"), o2).FromJust()); |
+ v8::Local<v8::Object> o3 = t3->GetFunction(context) |
+ .ToLocalChecked() |
+ ->NewInstance(context) |
+ .ToLocalChecked(); |
+ CHECK(env->Global()->Set(context, v8_str(isolate, "o3"), o3).FromJust()); |
// Get mirrors for the four objects. |
CompileRun( |
@@ -4492,43 +4659,62 @@ TEST(HiddenPrototypePropertyMirror) { |
"var o1_mirror = debug.MakeMirror(o1);" |
"var o2_mirror = debug.MakeMirror(o2);" |
"var o3_mirror = debug.MakeMirror(o3)"); |
- CHECK(CompileRun("o0_mirror instanceof debug.ObjectMirror")->BooleanValue()); |
- CHECK(CompileRun("o1_mirror instanceof debug.ObjectMirror")->BooleanValue()); |
- CHECK(CompileRun("o2_mirror instanceof debug.ObjectMirror")->BooleanValue()); |
- CHECK(CompileRun("o3_mirror instanceof debug.ObjectMirror")->BooleanValue()); |
+ CHECK(CompileRun("o0_mirror instanceof debug.ObjectMirror") |
+ ->BooleanValue(context) |
+ .FromJust()); |
+ CHECK(CompileRun("o1_mirror instanceof debug.ObjectMirror") |
+ ->BooleanValue(context) |
+ .FromJust()); |
+ CHECK(CompileRun("o2_mirror instanceof debug.ObjectMirror") |
+ ->BooleanValue(context) |
+ .FromJust()); |
+ CHECK(CompileRun("o3_mirror instanceof debug.ObjectMirror") |
+ ->BooleanValue(context) |
+ .FromJust()); |
// Check that each object has one property. |
- CHECK_EQ(1, CompileRun( |
- "o0_mirror.propertyNames().length")->Int32Value()); |
- CHECK_EQ(1, CompileRun( |
- "o1_mirror.propertyNames().length")->Int32Value()); |
- CHECK_EQ(1, CompileRun( |
- "o2_mirror.propertyNames().length")->Int32Value()); |
- CHECK_EQ(1, CompileRun( |
- "o3_mirror.propertyNames().length")->Int32Value()); |
+ CHECK_EQ(1, CompileRun("o0_mirror.propertyNames().length") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK_EQ(1, CompileRun("o1_mirror.propertyNames().length") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK_EQ(1, CompileRun("o2_mirror.propertyNames().length") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK_EQ(1, CompileRun("o3_mirror.propertyNames().length") |
+ ->Int32Value(context) |
+ .FromJust()); |
// Set o1 as prototype for o0. o1 has the hidden prototype flag so all |
// properties on o1 should be seen on o0. |
- o0->Set(v8::String::NewFromUtf8(isolate, "__proto__"), o1); |
- CHECK_EQ(2, CompileRun( |
- "o0_mirror.propertyNames().length")->Int32Value()); |
- CHECK_EQ(0, CompileRun( |
- "o0_mirror.property('x').value().value()")->Int32Value()); |
- CHECK_EQ(1, CompileRun( |
- "o0_mirror.property('y').value().value()")->Int32Value()); |
+ CHECK(o0->Set(context, v8_str(isolate, "__proto__"), o1).FromJust()); |
+ CHECK_EQ(2, CompileRun("o0_mirror.propertyNames().length") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK_EQ(0, CompileRun("o0_mirror.property('x').value().value()") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK_EQ(1, CompileRun("o0_mirror.property('y').value().value()") |
+ ->Int32Value(context) |
+ .FromJust()); |
// Set o2 as prototype for o0 (it will end up after o1 as o1 has the hidden |
// prototype flag. o2 also has the hidden prototype flag so all properties |
// on o2 should be seen on o0 as well as properties on o1. |
- o0->Set(v8::String::NewFromUtf8(isolate, "__proto__"), o2); |
- CHECK_EQ(3, CompileRun( |
- "o0_mirror.propertyNames().length")->Int32Value()); |
- CHECK_EQ(0, CompileRun( |
- "o0_mirror.property('x').value().value()")->Int32Value()); |
- CHECK_EQ(1, CompileRun( |
- "o0_mirror.property('y').value().value()")->Int32Value()); |
- CHECK_EQ(2, CompileRun( |
- "o0_mirror.property('z').value().value()")->Int32Value()); |
+ CHECK(o0->Set(context, v8_str(isolate, "__proto__"), o2).FromJust()); |
+ CHECK_EQ(3, CompileRun("o0_mirror.propertyNames().length") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK_EQ(0, CompileRun("o0_mirror.property('x').value().value()") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK_EQ(1, CompileRun("o0_mirror.property('y').value().value()") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK_EQ(2, CompileRun("o0_mirror.property('z').value().value()") |
+ ->Int32Value(context) |
+ .FromJust()); |
// Set o3 as prototype for o0 (it will end up after o1 and o2 as both o1 and |
// o2 has the hidden prototype flag. o3 does not have the hidden prototype |
@@ -4536,21 +4722,30 @@ TEST(HiddenPrototypePropertyMirror) { |
// from o1 and o2 should still be seen on o0. |
// Final prototype chain: o0 -> o1 -> o2 -> o3 |
// Hidden prototypes: ^^ ^^ |
- o0->Set(v8::String::NewFromUtf8(isolate, "__proto__"), o3); |
- CHECK_EQ(3, CompileRun( |
- "o0_mirror.propertyNames().length")->Int32Value()); |
- CHECK_EQ(1, CompileRun( |
- "o3_mirror.propertyNames().length")->Int32Value()); |
- CHECK_EQ(0, CompileRun( |
- "o0_mirror.property('x').value().value()")->Int32Value()); |
- CHECK_EQ(1, CompileRun( |
- "o0_mirror.property('y').value().value()")->Int32Value()); |
- CHECK_EQ(2, CompileRun( |
- "o0_mirror.property('z').value().value()")->Int32Value()); |
- CHECK(CompileRun("o0_mirror.property('u').isUndefined()")->BooleanValue()); |
+ CHECK(o0->Set(context, v8_str(isolate, "__proto__"), o3).FromJust()); |
+ CHECK_EQ(3, CompileRun("o0_mirror.propertyNames().length") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK_EQ(1, CompileRun("o3_mirror.propertyNames().length") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK_EQ(0, CompileRun("o0_mirror.property('x').value().value()") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK_EQ(1, CompileRun("o0_mirror.property('y').value().value()") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK_EQ(2, CompileRun("o0_mirror.property('z').value().value()") |
+ ->Int32Value(context) |
+ .FromJust()); |
+ CHECK(CompileRun("o0_mirror.property('u').isUndefined()") |
+ ->BooleanValue(context) |
+ .FromJust()); |
// The prototype (__proto__) for o0 should be o3 as o1 and o2 are hidden. |
- CHECK(CompileRun("o0_mirror.protoObject() == o3_mirror")->BooleanValue()); |
+ CHECK(CompileRun("o0_mirror.protoObject() == o3_mirror") |
+ ->BooleanValue(context) |
+ .FromJust()); |
} |
@@ -4568,29 +4763,35 @@ TEST(NativeGetterPropertyMirror) { |
v8::HandleScope scope(isolate); |
env.ExposeDebug(); |
- v8::Handle<v8::String> name = v8::String::NewFromUtf8(isolate, "x"); |
+ v8::Local<v8::Context> context = env.context(); |
+ v8::Local<v8::String> name = v8_str(isolate, "x"); |
// Create object with named accessor. |
- v8::Handle<v8::ObjectTemplate> named = v8::ObjectTemplate::New(isolate); |
- named->SetAccessor(name, &ProtperyXNativeGetter, NULL, |
- v8::Handle<v8::Value>(), v8::DEFAULT, v8::None); |
+ v8::Local<v8::ObjectTemplate> named = v8::ObjectTemplate::New(isolate); |
+ named->SetAccessor(name, &ProtperyXNativeGetter, NULL, v8::Local<v8::Value>(), |
+ v8::DEFAULT, v8::None); |
// Create object with named property getter. |
- env->Global()->Set(v8::String::NewFromUtf8(isolate, "instance"), |
- named->NewInstance()); |
- CHECK_EQ(10, CompileRun("instance.x")->Int32Value()); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str(isolate, "instance"), |
+ named->NewInstance(context).ToLocalChecked()) |
+ .FromJust()); |
+ CHECK_EQ(10, CompileRun("instance.x")->Int32Value(context).FromJust()); |
// Get mirror for the object with property getter. |
CompileRun("var instance_mirror = debug.MakeMirror(instance);"); |
- CHECK(CompileRun( |
- "instance_mirror instanceof debug.ObjectMirror")->BooleanValue()); |
+ CHECK(CompileRun("instance_mirror instanceof debug.ObjectMirror") |
+ ->BooleanValue(context) |
+ .FromJust()); |
CompileRun("var named_names = instance_mirror.propertyNames();"); |
- CHECK_EQ(1, CompileRun("named_names.length")->Int32Value()); |
- CHECK(CompileRun("named_names[0] == 'x'")->BooleanValue()); |
- CHECK(CompileRun( |
- "instance_mirror.property('x').value().isNumber()")->BooleanValue()); |
- CHECK(CompileRun( |
- "instance_mirror.property('x').value().value() == 10")->BooleanValue()); |
+ CHECK_EQ(1, CompileRun("named_names.length")->Int32Value(context).FromJust()); |
+ CHECK(CompileRun("named_names[0] == 'x'")->BooleanValue(context).FromJust()); |
+ CHECK(CompileRun("instance_mirror.property('x').value().isNumber()") |
+ ->BooleanValue(context) |
+ .FromJust()); |
+ CHECK(CompileRun("instance_mirror.property('x').value().value() == 10") |
+ ->BooleanValue(context) |
+ .FromJust()); |
} |
@@ -4608,30 +4809,37 @@ TEST(NativeGetterThrowingErrorPropertyMirror) { |
v8::HandleScope scope(isolate); |
env.ExposeDebug(); |
- v8::Handle<v8::String> name = v8::String::NewFromUtf8(isolate, "x"); |
+ v8::Local<v8::Context> context = env.context(); |
+ v8::Local<v8::String> name = v8_str(isolate, "x"); |
// Create object with named accessor. |
- v8::Handle<v8::ObjectTemplate> named = v8::ObjectTemplate::New(isolate); |
+ v8::Local<v8::ObjectTemplate> named = v8::ObjectTemplate::New(isolate); |
named->SetAccessor(name, &ProtperyXNativeGetterThrowingError, NULL, |
- v8::Handle<v8::Value>(), v8::DEFAULT, v8::None); |
+ v8::Local<v8::Value>(), v8::DEFAULT, v8::None); |
// Create object with named property getter. |
- env->Global()->Set(v8::String::NewFromUtf8(isolate, "instance"), |
- named->NewInstance()); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str(isolate, "instance"), |
+ named->NewInstance(context).ToLocalChecked()) |
+ .FromJust()); |
// Get mirror for the object with property getter. |
CompileRun("var instance_mirror = debug.MakeMirror(instance);"); |
- CHECK(CompileRun( |
- "instance_mirror instanceof debug.ObjectMirror")->BooleanValue()); |
+ CHECK(CompileRun("instance_mirror instanceof debug.ObjectMirror") |
+ ->BooleanValue(context) |
+ .FromJust()); |
CompileRun("named_names = instance_mirror.propertyNames();"); |
- CHECK_EQ(1, CompileRun("named_names.length")->Int32Value()); |
- CHECK(CompileRun("named_names[0] == 'x'")->BooleanValue()); |
- CHECK(CompileRun( |
- "instance_mirror.property('x').value().isError()")->BooleanValue()); |
+ CHECK_EQ(1, CompileRun("named_names.length")->Int32Value(context).FromJust()); |
+ CHECK(CompileRun("named_names[0] == 'x'")->BooleanValue(context).FromJust()); |
+ CHECK(CompileRun("instance_mirror.property('x').value().isError()") |
+ ->BooleanValue(context) |
+ .FromJust()); |
// Check that the message is that passed to the Error constructor. |
- CHECK(CompileRun( |
- "instance_mirror.property('x').value().message() == 'Error message'")-> |
- BooleanValue()); |
+ CHECK( |
+ CompileRun( |
+ "instance_mirror.property('x').value().message() == 'Error message'") |
+ ->BooleanValue(context) |
+ .FromJust()); |
} |
@@ -4645,81 +4853,97 @@ TEST(NoHiddenProperties) { |
v8::HandleScope scope(isolate); |
env.ExposeDebug(); |
+ v8::Local<v8::Context> context = env.context(); |
// Create an object in the global scope. |
const char* source = "var obj = {a: 1};"; |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, source)) |
- ->Run(); |
+ v8::Script::Compile(context, v8_str(isolate, source)) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::Local<v8::Object> obj = v8::Local<v8::Object>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(isolate, "obj"))); |
+ env->Global()->Get(context, v8_str(isolate, "obj")).ToLocalChecked()); |
// Set a hidden property on the object. |
- obj->SetPrivate(env.context(), |
- v8::Private::New(isolate, v8::String::NewFromUtf8( |
- isolate, "v8::test-debug::a")), |
- v8::Int32::New(isolate, 11)) |
+ obj->SetPrivate( |
+ env.context(), |
+ v8::Private::New(isolate, v8_str(isolate, "v8::test-debug::a")), |
+ v8::Int32::New(isolate, 11)) |
.FromJust(); |
// Get mirror for the object with property getter. |
CompileRun("var obj_mirror = debug.MakeMirror(obj);"); |
- CHECK(CompileRun( |
- "obj_mirror instanceof debug.ObjectMirror")->BooleanValue()); |
+ CHECK(CompileRun("obj_mirror instanceof debug.ObjectMirror") |
+ ->BooleanValue(context) |
+ .FromJust()); |
CompileRun("var named_names = obj_mirror.propertyNames();"); |
// There should be exactly one property. But there is also an unnamed |
// property whose value is hidden properties dictionary. The latter |
// property should not be in the list of reguar properties. |
- CHECK_EQ(1, CompileRun("named_names.length")->Int32Value()); |
- CHECK(CompileRun("named_names[0] == 'a'")->BooleanValue()); |
- CHECK(CompileRun( |
- "obj_mirror.property('a').value().value() == 1")->BooleanValue()); |
+ CHECK_EQ(1, CompileRun("named_names.length")->Int32Value(context).FromJust()); |
+ CHECK(CompileRun("named_names[0] == 'a'")->BooleanValue(context).FromJust()); |
+ CHECK(CompileRun("obj_mirror.property('a').value().value() == 1") |
+ ->BooleanValue(context) |
+ .FromJust()); |
// Object created by t0 will become hidden prototype of object 'obj'. |
- v8::Handle<v8::FunctionTemplate> t0 = v8::FunctionTemplate::New(isolate); |
- t0->InstanceTemplate()->Set(v8::String::NewFromUtf8(isolate, "b"), |
+ v8::Local<v8::FunctionTemplate> t0 = v8::FunctionTemplate::New(isolate); |
+ t0->InstanceTemplate()->Set(v8_str(isolate, "b"), |
v8::Number::New(isolate, 2)); |
t0->SetHiddenPrototype(true); |
- v8::Handle<v8::FunctionTemplate> t1 = v8::FunctionTemplate::New(isolate); |
- t1->InstanceTemplate()->Set(v8::String::NewFromUtf8(isolate, "c"), |
+ v8::Local<v8::FunctionTemplate> t1 = v8::FunctionTemplate::New(isolate); |
+ t1->InstanceTemplate()->Set(v8_str(isolate, "c"), |
v8::Number::New(isolate, 3)); |
// Create proto objects, add hidden properties to them and set them on |
// the global object. |
- v8::Handle<v8::Object> protoObj = t0->GetFunction()->NewInstance(); |
+ v8::Local<v8::Object> protoObj = t0->GetFunction(context) |
+ .ToLocalChecked() |
+ ->NewInstance(context) |
+ .ToLocalChecked(); |
protoObj->SetPrivate( |
env.context(), |
- v8::Private::New(isolate, v8::String::NewFromUtf8( |
- isolate, "v8::test-debug::b")), |
+ v8::Private::New(isolate, v8_str(isolate, "v8::test-debug::b")), |
v8::Int32::New(isolate, 12)) |
.FromJust(); |
- env->Global()->Set(v8::String::NewFromUtf8(isolate, "protoObj"), |
- protoObj); |
- v8::Handle<v8::Object> grandProtoObj = t1->GetFunction()->NewInstance(); |
- grandProtoObj->SetPrivate( |
- env.context(), |
- v8::Private::New(isolate, v8::String::NewFromUtf8( |
- isolate, "v8::test-debug::c")), |
- v8::Int32::New(isolate, 13)) |
+ CHECK(env->Global() |
+ ->Set(context, v8_str(isolate, "protoObj"), protoObj) |
+ .FromJust()); |
+ v8::Local<v8::Object> grandProtoObj = t1->GetFunction(context) |
+ .ToLocalChecked() |
+ ->NewInstance(context) |
+ .ToLocalChecked(); |
+ grandProtoObj->SetPrivate(env.context(), |
+ v8::Private::New( |
+ isolate, v8_str(isolate, "v8::test-debug::c")), |
+ v8::Int32::New(isolate, 13)) |
.FromJust(); |
- env->Global()->Set(v8::String::NewFromUtf8(isolate, "grandProtoObj"), |
- grandProtoObj); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str(isolate, "grandProtoObj"), grandProtoObj) |
+ .FromJust()); |
// Setting prototypes: obj->protoObj->grandProtoObj |
- protoObj->Set(v8::String::NewFromUtf8(isolate, "__proto__"), |
- grandProtoObj); |
- obj->Set(v8::String::NewFromUtf8(isolate, "__proto__"), protoObj); |
+ CHECK(protoObj->Set(context, v8_str(isolate, "__proto__"), grandProtoObj) |
+ .FromJust()); |
+ CHECK(obj->Set(context, v8_str(isolate, "__proto__"), protoObj).FromJust()); |
// Get mirror for the object with property getter. |
CompileRun("var obj_mirror = debug.MakeMirror(obj);"); |
- CHECK(CompileRun( |
- "obj_mirror instanceof debug.ObjectMirror")->BooleanValue()); |
+ CHECK(CompileRun("obj_mirror instanceof debug.ObjectMirror") |
+ ->BooleanValue(context) |
+ .FromJust()); |
CompileRun("var named_names = obj_mirror.propertyNames();"); |
// There should be exactly two properties - one from the object itself and |
// another from its hidden prototype. |
- CHECK_EQ(2, CompileRun("named_names.length")->Int32Value()); |
+ CHECK_EQ(2, CompileRun("named_names.length")->Int32Value(context).FromJust()); |
CHECK(CompileRun("named_names.sort(); named_names[0] == 'a' &&" |
- "named_names[1] == 'b'")->BooleanValue()); |
- CHECK(CompileRun( |
- "obj_mirror.property('a').value().value() == 1")->BooleanValue()); |
- CHECK(CompileRun( |
- "obj_mirror.property('b').value().value() == 2")->BooleanValue()); |
+ "named_names[1] == 'b'") |
+ ->BooleanValue(context) |
+ .FromJust()); |
+ CHECK(CompileRun("obj_mirror.property('a').value().value() == 1") |
+ ->BooleanValue(context) |
+ .FromJust()); |
+ CHECK(CompileRun("obj_mirror.property('b').value().value() == 2") |
+ ->BooleanValue(context) |
+ .FromJust()); |
} |
@@ -4889,7 +5113,7 @@ class MessageQueueDebuggerThread : public v8::base::Thread { |
static void MessageHandler(const v8::Debug::Message& message) { |
- v8::Handle<v8::String> json = message.GetJSON(); |
+ v8::Local<v8::String> json = message.GetJSON(); |
v8::String::Utf8Value utf8(json); |
if (IsBreakEventMessage(*utf8)) { |
// Lets test script wait until break occurs to send commands. |
@@ -5206,12 +5430,12 @@ void V8Thread::Run() { |
DebugLocalContext env(isolate_); |
v8::HandleScope scope(isolate_); |
v8::Debug::SetMessageHandler(&ThreadedMessageHandler); |
- v8::Handle<v8::ObjectTemplate> global_template = |
+ v8::Local<v8::ObjectTemplate> global_template = |
v8::ObjectTemplate::New(env->GetIsolate()); |
global_template->Set( |
- v8::String::NewFromUtf8(env->GetIsolate(), "ThreadedAtBarrier1"), |
+ v8_str(env->GetIsolate(), "ThreadedAtBarrier1"), |
v8::FunctionTemplate::New(isolate_, ThreadedAtBarrier1)); |
- v8::Handle<v8::Context> context = |
+ v8::Local<v8::Context> context = |
v8::Context::New(isolate_, NULL, global_template); |
v8::Context::Scope context_scope(context); |
@@ -5515,7 +5739,7 @@ static const char* debugger_call_with_data_source = |
" if (data) return data;" |
" throw 'No data!'" |
"}"; |
-v8::Handle<v8::Function> debugger_call_with_data; |
+v8::Local<v8::Function> debugger_call_with_data; |
// Source for a JavaScript function which returns the data parameter of a |
@@ -5528,23 +5752,32 @@ static const char* debugger_call_with_closure_source = |
" exec_state.y = x;" |
" return exec_state.y" |
"})"; |
-v8::Handle<v8::Function> debugger_call_with_closure; |
+v8::Local<v8::Function> debugger_call_with_closure; |
// Function to retrieve the number of JavaScript frames by calling a JavaScript |
// in the debugger. |
static void CheckFrameCount(const v8::FunctionCallbackInfo<v8::Value>& args) { |
- CHECK(v8::Debug::Call(frame_count)->IsNumber()); |
- CHECK_EQ(args[0]->Int32Value(), |
- v8::Debug::Call(frame_count)->Int32Value()); |
+ v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext(); |
+ CHECK(v8::Debug::Call(context, frame_count).ToLocalChecked()->IsNumber()); |
+ CHECK_EQ(args[0]->Int32Value(context).FromJust(), |
+ v8::Debug::Call(context, frame_count) |
+ .ToLocalChecked() |
+ ->Int32Value(context) |
+ .FromJust()); |
} |
// Function to retrieve the source line of the top JavaScript frame by calling a |
// JavaScript function in the debugger. |
static void CheckSourceLine(const v8::FunctionCallbackInfo<v8::Value>& args) { |
- CHECK(v8::Debug::Call(frame_source_line)->IsNumber()); |
- CHECK_EQ(args[0]->Int32Value(), |
- v8::Debug::Call(frame_source_line)->Int32Value()); |
+ v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext(); |
+ CHECK( |
+ v8::Debug::Call(context, frame_source_line).ToLocalChecked()->IsNumber()); |
+ CHECK_EQ(args[0]->Int32Value(context).FromJust(), |
+ v8::Debug::Call(context, frame_source_line) |
+ .ToLocalChecked() |
+ ->Int32Value(context) |
+ .FromJust()); |
} |
@@ -5553,13 +5786,15 @@ static void CheckSourceLine(const v8::FunctionCallbackInfo<v8::Value>& args) { |
// can throw exceptions. |
static void CheckDataParameter( |
const v8::FunctionCallbackInfo<v8::Value>& args) { |
- v8::Handle<v8::String> data = |
- v8::String::NewFromUtf8(args.GetIsolate(), "Test"); |
- CHECK(v8::Debug::Call(debugger_call_with_data, data)->IsString()); |
+ v8::Local<v8::String> data = v8_str(args.GetIsolate(), "Test"); |
+ v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext(); |
+ CHECK(v8::Debug::Call(context, debugger_call_with_data, data) |
+ .ToLocalChecked() |
+ ->IsString()); |
for (int i = 0; i < 3; i++) { |
v8::TryCatch catcher(args.GetIsolate()); |
- CHECK(v8::Debug::Call(debugger_call_with_data).IsEmpty()); |
+ CHECK(v8::Debug::Call(context, debugger_call_with_data).IsEmpty()); |
CHECK(catcher.HasCaught()); |
CHECK(catcher.Exception()->IsString()); |
} |
@@ -5568,8 +5803,14 @@ static void CheckDataParameter( |
// Function to test using a JavaScript with closure in the debugger. |
static void CheckClosure(const v8::FunctionCallbackInfo<v8::Value>& args) { |
- CHECK(v8::Debug::Call(debugger_call_with_closure)->IsNumber()); |
- CHECK_EQ(3, v8::Debug::Call(debugger_call_with_closure)->Int32Value()); |
+ v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext(); |
+ CHECK(v8::Debug::Call(context, debugger_call_with_closure) |
+ .ToLocalChecked() |
+ ->IsNumber()); |
+ CHECK_EQ(3, v8::Debug::Call(context, debugger_call_with_closure) |
+ .ToLocalChecked() |
+ ->Int32Value(context) |
+ .FromJust()); |
} |
@@ -5579,94 +5820,122 @@ TEST(CallFunctionInDebugger) { |
// CheckSourceLine and CheckDataParameter installed. |
v8::Isolate* isolate = CcTest::isolate(); |
v8::HandleScope scope(isolate); |
- v8::Handle<v8::ObjectTemplate> global_template = |
+ v8::Local<v8::ObjectTemplate> global_template = |
v8::ObjectTemplate::New(isolate); |
- global_template->Set( |
- v8::String::NewFromUtf8(isolate, "CheckFrameCount"), |
- v8::FunctionTemplate::New(isolate, CheckFrameCount)); |
- global_template->Set( |
- v8::String::NewFromUtf8(isolate, "CheckSourceLine"), |
- v8::FunctionTemplate::New(isolate, CheckSourceLine)); |
- global_template->Set( |
- v8::String::NewFromUtf8(isolate, "CheckDataParameter"), |
- v8::FunctionTemplate::New(isolate, CheckDataParameter)); |
- global_template->Set( |
- v8::String::NewFromUtf8(isolate, "CheckClosure"), |
- v8::FunctionTemplate::New(isolate, CheckClosure)); |
- v8::Handle<v8::Context> context = v8::Context::New(isolate, |
- NULL, |
- global_template); |
+ global_template->Set(v8_str(isolate, "CheckFrameCount"), |
+ v8::FunctionTemplate::New(isolate, CheckFrameCount)); |
+ global_template->Set(v8_str(isolate, "CheckSourceLine"), |
+ v8::FunctionTemplate::New(isolate, CheckSourceLine)); |
+ global_template->Set(v8_str(isolate, "CheckDataParameter"), |
+ v8::FunctionTemplate::New(isolate, CheckDataParameter)); |
+ global_template->Set(v8_str(isolate, "CheckClosure"), |
+ v8::FunctionTemplate::New(isolate, CheckClosure)); |
+ v8::Local<v8::Context> context = |
+ v8::Context::New(isolate, NULL, global_template); |
v8::Context::Scope context_scope(context); |
// Compile a function for checking the number of JavaScript frames. |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(isolate, frame_count_source))->Run(); |
- frame_count = v8::Local<v8::Function>::Cast(context->Global()->Get( |
- v8::String::NewFromUtf8(isolate, "frame_count"))); |
+ v8::Script::Compile(context, v8_str(isolate, frame_count_source)) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
+ frame_count = v8::Local<v8::Function>::Cast( |
+ context->Global() |
+ ->Get(context, v8_str(isolate, "frame_count")) |
+ .ToLocalChecked()); |
// Compile a function for returning the source line for the top frame. |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, |
- frame_source_line_source))->Run(); |
- frame_source_line = v8::Local<v8::Function>::Cast(context->Global()->Get( |
- v8::String::NewFromUtf8(isolate, "frame_source_line"))); |
+ v8::Script::Compile(context, v8_str(isolate, frame_source_line_source)) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
+ frame_source_line = v8::Local<v8::Function>::Cast( |
+ context->Global() |
+ ->Get(context, v8_str(isolate, "frame_source_line")) |
+ .ToLocalChecked()); |
// Compile a function returning the data parameter. |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, |
- debugger_call_with_data_source)) |
- ->Run(); |
+ v8::Script::Compile(context, v8_str(isolate, debugger_call_with_data_source)) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
debugger_call_with_data = v8::Local<v8::Function>::Cast( |
- context->Global()->Get(v8::String::NewFromUtf8( |
- isolate, "debugger_call_with_data"))); |
+ context->Global() |
+ ->Get(context, v8_str(isolate, "debugger_call_with_data")) |
+ .ToLocalChecked()); |
// Compile a function capturing closure. |
- debugger_call_with_closure = |
- v8::Local<v8::Function>::Cast(v8::Script::Compile( |
- v8::String::NewFromUtf8(isolate, |
- debugger_call_with_closure_source))->Run()); |
+ debugger_call_with_closure = v8::Local<v8::Function>::Cast( |
+ v8::Script::Compile(context, |
+ v8_str(isolate, debugger_call_with_closure_source)) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked()); |
// Calling a function through the debugger returns 0 frames if there are |
// no JavaScript frames. |
- CHECK(v8::Integer::New(isolate, 0)->Equals(v8::Debug::Call(frame_count))); |
+ CHECK(v8::Integer::New(isolate, 0) |
+ ->Equals(context, |
+ v8::Debug::Call(context, frame_count).ToLocalChecked()) |
+ .FromJust()); |
// Test that the number of frames can be retrieved. |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(isolate, "CheckFrameCount(1)"))->Run(); |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, |
- "function f() {" |
- " CheckFrameCount(2);" |
- "}; f()"))->Run(); |
+ v8::Script::Compile(context, v8_str(isolate, "CheckFrameCount(1)")) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
+ v8::Script::Compile(context, v8_str(isolate, |
+ "function f() {" |
+ " CheckFrameCount(2);" |
+ "}; f()")) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
// Test that the source line can be retrieved. |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(isolate, "CheckSourceLine(0)"))->Run(); |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, |
- "function f() {\n" |
- " CheckSourceLine(1)\n" |
- " CheckSourceLine(2)\n" |
- " CheckSourceLine(3)\n" |
- "}; f()"))->Run(); |
+ v8::Script::Compile(context, v8_str(isolate, "CheckSourceLine(0)")) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
+ v8::Script::Compile(context, v8_str(isolate, |
+ "function f() {\n" |
+ " CheckSourceLine(1)\n" |
+ " CheckSourceLine(2)\n" |
+ " CheckSourceLine(3)\n" |
+ "}; f()")) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
// Test that a parameter can be passed to a function called in the debugger. |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, |
- "CheckDataParameter()"))->Run(); |
+ v8::Script::Compile(context, v8_str(isolate, "CheckDataParameter()")) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
// Test that a function with closure can be run in the debugger. |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(isolate, "CheckClosure()"))->Run(); |
+ v8::Script::Compile(context, v8_str(isolate, "CheckClosure()")) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
// Test that the source line is correct when there is a line offset. |
- v8::ScriptOrigin origin(v8::String::NewFromUtf8(isolate, "test"), |
+ v8::ScriptOrigin origin(v8_str(isolate, "test"), |
v8::Integer::New(isolate, 7)); |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(isolate, "CheckSourceLine(7)"), &origin) |
- ->Run(); |
- v8::Script::Compile(v8::String::NewFromUtf8(isolate, |
- "function f() {\n" |
- " CheckSourceLine(8)\n" |
- " CheckSourceLine(9)\n" |
- " CheckSourceLine(10)\n" |
- "}; f()"), |
- &origin)->Run(); |
+ v8::Script::Compile(context, v8_str(isolate, "CheckSourceLine(7)"), &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
+ v8::Script::Compile(context, v8_str(isolate, |
+ "function f() {\n" |
+ " CheckSourceLine(8)\n" |
+ " CheckSourceLine(9)\n" |
+ " CheckSourceLine(10)\n" |
+ "}; f()"), |
+ &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
} |
@@ -5694,6 +5963,7 @@ TEST(DebuggerUnload) { |
// Set a debug event listener. |
break_point_hit_count = 0; |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
+ v8::Local<v8::Context> context = env.context(); |
{ |
v8::HandleScope scope(env->GetIsolate()); |
// Create a couple of functions for the test. |
@@ -5710,9 +5980,9 @@ TEST(DebuggerUnload) { |
// Make sure that the break points are there. |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
- bar->Call(env->Global(), 0, NULL); |
+ bar->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(4, break_point_hit_count); |
} |
@@ -5729,15 +5999,17 @@ TEST(DebuggerUnload) { |
// Get the test functions again. |
v8::Local<v8::Function> foo(v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "foo")))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "foo")) |
+ .ToLocalChecked())); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(0, break_point_hit_count); |
// Set break points and run again. |
SetBreakPoint(foo, 0); |
SetBreakPoint(foo, 4); |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
} |
@@ -5861,12 +6133,12 @@ TEST(DebugGetLoadedScripts) { |
v8::HandleScope scope(env->GetIsolate()); |
env.ExposeDebug(); |
+ v8::Local<v8::Context> context = env.context(); |
EmptyExternalStringResource source_ext_str; |
v8::Local<v8::String> source = |
- v8::String::NewExternal(env->GetIsolate(), &source_ext_str); |
- v8::Handle<v8::Script> evil_script(v8::Script::Compile(source)); |
- // "use" evil_script to make the compiler happy. |
- USE(evil_script); |
+ v8::String::NewExternalTwoByte(env->GetIsolate(), &source_ext_str) |
+ .ToLocalChecked(); |
+ CHECK(v8::Script::Compile(context, source).IsEmpty()); |
Handle<i::ExternalTwoByteString> i_source( |
i::ExternalTwoByteString::cast(*v8::Utils::OpenHandle(*source))); |
// This situation can happen if source was an external string disposed |
@@ -5896,10 +6168,11 @@ TEST(DebugGetLoadedScripts) { |
i::FLAG_allow_natives_syntax = allow_natives_syntax; |
// Some scripts are retrieved - at least the number of native scripts. |
- CHECK_GT((*env) |
- ->Global() |
- ->Get(v8::String::NewFromUtf8(env->GetIsolate(), "count")) |
- ->Int32Value(), |
+ CHECK_GT(env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "count")) |
+ .ToLocalChecked() |
+ ->Int32Value(context) |
+ .FromJust(), |
8); |
} |
@@ -5918,61 +6191,79 @@ TEST(ScriptNameAndData) { |
v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); |
+ v8::Local<v8::Context> context = env.context(); |
// Test function source. |
- v8::Local<v8::String> script = v8::String::NewFromUtf8(env->GetIsolate(), |
- "function f() {\n" |
- " debugger;\n" |
- "}\n"); |
+ v8::Local<v8::String> script = v8_str(env->GetIsolate(), |
+ "function f() {\n" |
+ " debugger;\n" |
+ "}\n"); |
v8::ScriptOrigin origin1 = |
- v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "name")); |
- v8::Handle<v8::Script> script1 = v8::Script::Compile(script, &origin1); |
- script1->Run(); |
+ v8::ScriptOrigin(v8_str(env->GetIsolate(), "name")); |
+ v8::Local<v8::Script> script1 = |
+ v8::Script::Compile(context, script, &origin1).ToLocalChecked(); |
+ script1->Run(context).ToLocalChecked(); |
v8::Local<v8::Function> f; |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
CHECK_EQ(0, strcmp("name", last_script_name_hit)); |
// Compile the same script again without setting data. As the compilation |
// cache is disabled when debugging expect the data to be missing. |
- v8::Script::Compile(script, &origin1)->Run(); |
+ v8::Script::Compile(context, script, &origin1) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
- f->Call(env->Global(), 0, NULL); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, break_point_hit_count); |
CHECK_EQ(0, strcmp("name", last_script_name_hit)); |
- v8::Local<v8::String> data_obj_source = v8::String::NewFromUtf8( |
- env->GetIsolate(), |
- "({ a: 'abc',\n" |
- " b: 123,\n" |
- " toString: function() { return this.a + ' ' + this.b; }\n" |
- "})\n"); |
- v8::Script::Compile(data_obj_source)->Run(); |
+ v8::Local<v8::String> data_obj_source = |
+ v8_str(env->GetIsolate(), |
+ "({ a: 'abc',\n" |
+ " b: 123,\n" |
+ " toString: function() { return this.a + ' ' + this.b; }\n" |
+ "})\n"); |
+ v8::Script::Compile(context, data_obj_source) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::ScriptOrigin origin2 = |
- v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "new name")); |
- v8::Handle<v8::Script> script2 = v8::Script::Compile(script, &origin2); |
- script2->Run(); |
+ v8::ScriptOrigin(v8_str(env->GetIsolate(), "new name")); |
+ v8::Local<v8::Script> script2 = |
+ v8::Script::Compile(context, script, &origin2).ToLocalChecked(); |
+ script2->Run(context).ToLocalChecked(); |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
- f->Call(env->Global(), 0, NULL); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(3, break_point_hit_count); |
CHECK_EQ(0, strcmp("new name", last_script_name_hit)); |
- v8::Handle<v8::Script> script3 = v8::Script::Compile(script, &origin2); |
- script3->Run(); |
+ v8::Local<v8::Script> script3 = |
+ v8::Script::Compile(context, script, &origin2).ToLocalChecked(); |
+ script3->Run(context).ToLocalChecked(); |
f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
- f->Call(env->Global(), 0, NULL); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(4, break_point_hit_count); |
} |
-static v8::Handle<v8::Context> expected_context; |
-static v8::Handle<v8::Value> expected_context_data; |
+static v8::Local<v8::Context> expected_context; |
+static v8::Local<v8::Value> expected_context_data; |
// Check that the expected context is the one generating the debug event. |
@@ -6001,11 +6292,11 @@ TEST(ContextData) { |
v8::HandleScope scope(isolate); |
// Create two contexts. |
- v8::Handle<v8::Context> context_1; |
- v8::Handle<v8::Context> context_2; |
- v8::Handle<v8::ObjectTemplate> global_template = |
- v8::Handle<v8::ObjectTemplate>(); |
- v8::Handle<v8::Value> global_object = v8::Handle<v8::Value>(); |
+ v8::Local<v8::Context> context_1; |
+ v8::Local<v8::Context> context_2; |
+ v8::Local<v8::ObjectTemplate> global_template = |
+ v8::Local<v8::ObjectTemplate>(); |
+ v8::Local<v8::Value> global_object = v8::Local<v8::Value>(); |
context_1 = v8::Context::New(isolate, NULL, global_template, global_object); |
context_2 = v8::Context::New(isolate, NULL, global_template, global_object); |
@@ -6016,8 +6307,8 @@ TEST(ContextData) { |
CHECK(context_2->GetEmbedderData(0)->IsUndefined()); |
// Set and check different data values. |
- v8::Handle<v8::String> data_1 = v8::String::NewFromUtf8(isolate, "1"); |
- v8::Handle<v8::String> data_2 = v8::String::NewFromUtf8(isolate, "2"); |
+ v8::Local<v8::String> data_1 = v8_str(isolate, "1"); |
+ v8::Local<v8::String> data_2 = v8_str(isolate, "2"); |
context_1->SetEmbedderData(0, data_1); |
context_2->SetEmbedderData(0, data_2); |
CHECK(context_1->GetEmbedderData(0)->StrictEquals(data_1)); |
@@ -6032,7 +6323,7 @@ TEST(ContextData) { |
expected_context = context_1; |
expected_context_data = data_1; |
v8::Local<v8::Function> f = CompileFunction(isolate, source, "f"); |
- f->Call(context_1->Global(), 0, NULL); |
+ f->Call(context_1, context_1->Global(), 0, NULL).ToLocalChecked(); |
} |
@@ -6042,7 +6333,7 @@ TEST(ContextData) { |
expected_context = context_2; |
expected_context_data = data_2; |
v8::Local<v8::Function> f = CompileFunction(isolate, source, "f"); |
- f->Call(context_2->Global(), 0, NULL); |
+ f->Call(context_2, context_2->Global(), 0, NULL).ToLocalChecked(); |
} |
// Two times compile event and two times break event. |
@@ -6080,20 +6371,25 @@ TEST(DebugBreakInMessageHandler) { |
v8::Debug::SetMessageHandler(DebugBreakMessageHandler); |
+ v8::Local<v8::Context> context = env.context(); |
// Test functions. |
const char* script = "function f() { debugger; g(); } function g() { }"; |
CompileRun(script); |
v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
v8::Local<v8::Function> g = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "g"))); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "g")) |
+ .ToLocalChecked()); |
// Call f then g. The debugger statement in f will cause a break which will |
// cause another break. |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, message_handler_break_hit_count); |
// Calling g will not cause any additional breaks. |
- g->Call(env->Global(), 0, NULL); |
+ g->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(2, message_handler_break_hit_count); |
} |
@@ -6104,8 +6400,8 @@ TEST(DebugBreakInMessageHandler) { |
static void DebugEventDebugBreak( |
const v8::Debug::EventDetails& event_details) { |
v8::DebugEvent event = event_details.GetEvent(); |
- v8::Handle<v8::Object> exec_state = event_details.GetExecutionState(); |
- |
+ v8::Local<v8::Object> exec_state = event_details.GetExecutionState(); |
+ v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext(); |
if (event == v8::Break) { |
break_point_hit_count++; |
@@ -6113,17 +6409,17 @@ static void DebugEventDebugBreak( |
if (!frame_function_name.IsEmpty()) { |
// Get the name of the function. |
const int argc = 2; |
- v8::Handle<v8::Value> argv[argc] = { |
- exec_state, v8::Integer::New(CcTest::isolate(), 0) |
- }; |
- v8::Handle<v8::Value> result = frame_function_name->Call(exec_state, |
- argc, argv); |
+ v8::Local<v8::Value> argv[argc] = { |
+ exec_state, v8::Integer::New(CcTest::isolate(), 0)}; |
+ v8::Local<v8::Value> result = |
+ frame_function_name->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
if (result->IsUndefined()) { |
last_function_hit[0] = '\0'; |
} else { |
CHECK(result->IsString()); |
- v8::Handle<v8::String> function_name( |
- result->ToString(CcTest::isolate())); |
+ v8::Local<v8::String> function_name( |
+ result->ToString(context).ToLocalChecked()); |
function_name->WriteUtf8(last_function_hit); |
} |
} |
@@ -6140,7 +6436,7 @@ TEST(RegExpDebugBreak) { |
// This test only applies to native regexps. |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
- |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for checking the function when hitting a break point. |
frame_function_name = CompileFunction(&env, |
frame_function_name_source, |
@@ -6154,14 +6450,15 @@ TEST(RegExpDebugBreak) { |
v8::Local<v8::Function> f = CompileFunction(env->GetIsolate(), script, "f"); |
const int argc = 1; |
- v8::Handle<v8::Value> argv[argc] = { |
- v8::String::NewFromUtf8(env->GetIsolate(), " /* xxx */ a=0;")}; |
- v8::Local<v8::Value> result = f->Call(env->Global(), argc, argv); |
- CHECK_EQ(12, result->Int32Value()); |
+ v8::Local<v8::Value> argv[argc] = { |
+ v8_str(env->GetIsolate(), " /* xxx */ a=0;")}; |
+ v8::Local<v8::Value> result = |
+ f->Call(context, env->Global(), argc, argv).ToLocalChecked(); |
+ CHECK_EQ(12, result->Int32Value(context).FromJust()); |
v8::Debug::SetDebugEventListener(DebugEventDebugBreak); |
v8::Debug::DebugBreak(env->GetIsolate()); |
- result = f->Call(env->Global(), argc, argv); |
+ result = f->Call(context, env->Global(), argc, argv).ToLocalChecked(); |
// Check that there was only one break event. Matching RegExp should not |
// cause Break events. |
@@ -6175,9 +6472,9 @@ TEST(RegExpDebugBreak) { |
static void ExecuteScriptForContextCheck( |
v8::Debug::MessageHandler message_handler) { |
// Create a context. |
- v8::Handle<v8::Context> context_1; |
- v8::Handle<v8::ObjectTemplate> global_template = |
- v8::Handle<v8::ObjectTemplate>(); |
+ v8::Local<v8::Context> context_1; |
+ v8::Local<v8::ObjectTemplate> global_template = |
+ v8::Local<v8::ObjectTemplate>(); |
context_1 = |
v8::Context::New(CcTest::isolate(), NULL, global_template); |
@@ -6187,8 +6484,7 @@ static void ExecuteScriptForContextCheck( |
CHECK(context_1->GetEmbedderData(0)->IsUndefined()); |
// Set and check a data value. |
- v8::Handle<v8::String> data_1 = |
- v8::String::NewFromUtf8(CcTest::isolate(), "1"); |
+ v8::Local<v8::String> data_1 = v8_str(CcTest::isolate(), "1"); |
context_1->SetEmbedderData(0, data_1); |
CHECK(context_1->GetEmbedderData(0)->StrictEquals(data_1)); |
@@ -6201,7 +6497,7 @@ static void ExecuteScriptForContextCheck( |
expected_context = context_1; |
expected_context_data = data_1; |
v8::Local<v8::Function> f = CompileFunction(CcTest::isolate(), source, "f"); |
- f->Call(context_1->Global(), 0, NULL); |
+ f->Call(context_1, context_1->Global(), 0, NULL).ToLocalChecked(); |
} |
v8::Debug::SetMessageHandler(NULL); |
@@ -6310,18 +6606,23 @@ static void AfterCompileMessageHandler(const v8::Debug::Message& message) { |
TEST(AfterCompileMessageWhenMessageHandlerIsReset) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
+ v8::Local<v8::Context> context = env.context(); |
after_compile_message_count = 0; |
const char* script = "var a=1"; |
v8::Debug::SetMessageHandler(AfterCompileMessageHandler); |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), script)) |
- ->Run(); |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), script)) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::Debug::SetMessageHandler(NULL); |
v8::Debug::SetMessageHandler(AfterCompileMessageHandler); |
v8::Debug::DebugBreak(env->GetIsolate()); |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), script)) |
- ->Run(); |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), script)) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
// Setting listener to NULL should cause debugger unload. |
v8::Debug::SetMessageHandler(NULL); |
@@ -6359,6 +6660,7 @@ TEST(SyntaxErrorMessageOnSyntaxException) { |
ChangeBreakOnException(false, true); |
v8::Debug::SetDebugEventListener(CompileErrorEventCounter); |
+ v8::Local<v8::Context> context = env.context(); |
CompileErrorEventCounterClear(); |
@@ -6366,24 +6668,29 @@ TEST(SyntaxErrorMessageOnSyntaxException) { |
CHECK_EQ(0, compile_error_event_count); |
// Throws SyntaxError: Unexpected end of input |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), "+++")); |
+ CHECK( |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), "+++")).IsEmpty()); |
CHECK_EQ(1, compile_error_event_count); |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), "/sel\\/: \\")); |
+ CHECK(v8::Script::Compile(context, v8_str(env->GetIsolate(), "/sel\\/: \\")) |
+ .IsEmpty()); |
CHECK_EQ(2, compile_error_event_count); |
- v8::Local<v8::Script> script = v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), "JSON.parse('1234:')")); |
+ v8::Local<v8::Script> script = |
+ v8::Script::Compile(context, |
+ v8_str(env->GetIsolate(), "JSON.parse('1234:')")) |
+ .ToLocalChecked(); |
CHECK_EQ(2, compile_error_event_count); |
- script->Run(); |
+ CHECK(script->Run(context).IsEmpty()); |
CHECK_EQ(3, compile_error_event_count); |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(env->GetIsolate(), "new RegExp('/\\/\\\\');")); |
+ v8::Script::Compile(context, |
+ v8_str(env->GetIsolate(), "new RegExp('/\\/\\\\');")) |
+ .ToLocalChecked(); |
CHECK_EQ(3, compile_error_event_count); |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), "throw 1;")); |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), "throw 1;")) |
+ .ToLocalChecked(); |
CHECK_EQ(3, compile_error_event_count); |
} |
@@ -6392,19 +6699,24 @@ TEST(SyntaxErrorMessageOnSyntaxException) { |
TEST(BreakMessageWhenMessageHandlerIsReset) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
+ v8::Local<v8::Context> context = env.context(); |
after_compile_message_count = 0; |
const char* script = "function f() {};"; |
v8::Debug::SetMessageHandler(AfterCompileMessageHandler); |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), script)) |
- ->Run(); |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), script)) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::Debug::SetMessageHandler(NULL); |
v8::Debug::SetMessageHandler(AfterCompileMessageHandler); |
v8::Debug::DebugBreak(env->GetIsolate()); |
v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
- f->Call(env->Global(), 0, NULL); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// Setting message handler to NULL should cause debugger unload. |
v8::Debug::SetMessageHandler(NULL); |
@@ -6429,6 +6741,7 @@ TEST(ExceptionMessageWhenMessageHandlerIsReset) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
+ v8::Local<v8::Context> context = env.context(); |
// For this test, we want to break on uncaught exceptions: |
ChangeBreakOnException(false, true); |
@@ -6436,14 +6749,18 @@ TEST(ExceptionMessageWhenMessageHandlerIsReset) { |
const char* script = "function f() {throw new Error()};"; |
v8::Debug::SetMessageHandler(AfterCompileMessageHandler); |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), script)) |
- ->Run(); |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), script)) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
v8::Debug::SetMessageHandler(NULL); |
v8::Debug::SetMessageHandler(ExceptionMessageHandler); |
v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast( |
- env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
- f->Call(env->Global(), 0, NULL); |
+ env->Global() |
+ ->Get(context, v8_str(env->GetIsolate(), "f")) |
+ .ToLocalChecked()); |
+ CHECK(f->Call(context, env->Global(), 0, NULL).IsEmpty()); |
// Setting message handler to NULL should cause debugger unload. |
v8::Debug::SetMessageHandler(NULL); |
@@ -6463,6 +6780,7 @@ TEST(ProvisionalBreakpointOnLineOutOfRange) { |
const char* resource_name = "test_resource"; |
v8::Debug::SetMessageHandler(AfterCompileMessageHandler); |
+ v8::Local<v8::Context> context = env.context(); |
// Set a couple of provisional breakpoint on lines out of the script lines |
// range. |
@@ -6473,14 +6791,15 @@ TEST(ProvisionalBreakpointOnLineOutOfRange) { |
after_compile_message_count = 0; |
- v8::ScriptOrigin origin( |
- v8::String::NewFromUtf8(env->GetIsolate(), resource_name), |
- v8::Integer::New(env->GetIsolate(), 10), |
- v8::Integer::New(env->GetIsolate(), 1)); |
+ v8::ScriptOrigin origin(v8_str(env->GetIsolate(), resource_name), |
+ v8::Integer::New(env->GetIsolate(), 10), |
+ v8::Integer::New(env->GetIsolate(), 1)); |
// Compile a script whose first line number is greater than the breakpoints' |
// lines. |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), script), |
- &origin)->Run(); |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), script), &origin) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
// If the script is compiled successfully there is exactly one after compile |
// event. In case of an exception in debugger code after compile event is not |
@@ -6521,6 +6840,7 @@ static void BreakMessageHandler(const v8::Debug::Message& message) { |
TEST(NoDebugBreakInAfterCompileMessageHandler) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
+ v8::Local<v8::Context> context = env.context(); |
// Register a debug event listener which sets the break flag and counts. |
v8::Debug::SetMessageHandler(BreakMessageHandler); |
@@ -6537,7 +6857,7 @@ TEST(NoDebugBreakInAfterCompileMessageHandler) { |
// Set the debug break flag again. |
v8::Debug::DebugBreak(env->GetIsolate()); |
- f->Call(env->Global(), 0, NULL); |
+ f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// There should be one more break event when the script is evaluated in 'f'. |
CHECK_EQ(2, break_point_hit_count); |
@@ -6639,7 +6959,7 @@ class SendCommandThread : public v8::base::Thread { |
timer.Elapsed().InMillisecondsF()); |
} |
- v8::V8::TerminateExecution(isolate_); |
+ isolate_->TerminateExecution(); |
} |
void StartSending() { semaphore_.Signal(); } |
@@ -6660,6 +6980,7 @@ TEST(ProcessDebugMessagesThreaded) { |
DebugLocalContext env; |
v8::Isolate* isolate = env->GetIsolate(); |
v8::HandleScope scope(isolate); |
+ v8::Local<v8::Context> context = env.context(); |
counting_message_handler_counter = 0; |
@@ -6668,9 +6989,12 @@ TEST(ProcessDebugMessagesThreaded) { |
send_command_thread_ = new SendCommandThread(isolate); |
send_command_thread_->Start(); |
- v8::Handle<v8::FunctionTemplate> start = |
+ v8::Local<v8::FunctionTemplate> start = |
v8::FunctionTemplate::New(isolate, StartSendingCommands); |
- env->Global()->Set(v8_str("start"), start->GetFunction()); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str("start"), |
+ start->GetFunction(context).ToLocalChecked()) |
+ .FromJust()); |
CompileRun("start(); while (true) { }"); |
@@ -6703,6 +7027,7 @@ TEST(Backtrace) { |
DebugLocalContext env; |
v8::Isolate* isolate = env->GetIsolate(); |
v8::HandleScope scope(isolate); |
+ v8::Local<v8::Context> context = env.context(); |
v8::Debug::SetMessageHandler(BacktraceData::MessageHandler); |
@@ -6723,9 +7048,8 @@ TEST(Backtrace) { |
v8::Debug::ProcessDebugMessages(); |
CHECK_EQ(BacktraceData::frame_counter, 0); |
- v8::Handle<v8::String> void0 = |
- v8::String::NewFromUtf8(env->GetIsolate(), "void(0)"); |
- v8::Handle<v8::Script> script = CompileWithOrigin(void0, void0); |
+ v8::Local<v8::String> void0 = v8_str(env->GetIsolate(), "void(0)"); |
+ v8::Local<v8::Script> script = CompileWithOrigin(void0, void0); |
// Check backtrace from "void(0)" script. |
BacktraceData::frame_counter = -10; |
@@ -6734,7 +7058,7 @@ TEST(Backtrace) { |
buffer, |
AsciiToUtf16(scripts_command, buffer), |
NULL); |
- script->Run(); |
+ script->Run(context).ToLocalChecked(); |
CHECK_EQ(BacktraceData::frame_counter, 1); |
// Get rid of the debug message handler. |
@@ -6747,19 +7071,23 @@ TEST(GetMirror) { |
DebugLocalContext env; |
v8::Isolate* isolate = env->GetIsolate(); |
v8::HandleScope scope(isolate); |
- v8::Handle<v8::Value> obj = |
- v8::Debug::GetMirror(v8::String::NewFromUtf8(isolate, "hodja")); |
+ v8::Local<v8::Context> context = env.context(); |
+ v8::Local<v8::Value> obj = |
+ v8::Debug::GetMirror(context, v8_str(isolate, "hodja")).ToLocalChecked(); |
v8::ScriptCompiler::Source source(v8_str( |
"function runTest(mirror) {" |
" return mirror.isString() && (mirror.length() == 5);" |
"}" |
"" |
"runTest;")); |
- v8::Handle<v8::Function> run_test = v8::Handle<v8::Function>::Cast( |
- v8::ScriptCompiler::CompileUnbound(isolate, &source) |
+ v8::Local<v8::Function> run_test = v8::Local<v8::Function>::Cast( |
+ v8::ScriptCompiler::CompileUnboundScript(isolate, &source) |
+ .ToLocalChecked() |
->BindToCurrentContext() |
- ->Run()); |
- v8::Handle<v8::Value> result = run_test->Call(env->Global(), 1, &obj); |
+ ->Run(context) |
+ .ToLocalChecked()); |
+ v8::Local<v8::Value> result = |
+ run_test->Call(context, env->Global(), 1, &obj).ToLocalChecked(); |
CHECK(result->IsTrue()); |
} |
@@ -6768,6 +7096,7 @@ TEST(GetMirror) { |
TEST(DebugBreakFunctionApply) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for testing breaking in apply. |
v8::Local<v8::Function> foo = CompileFunction( |
@@ -6787,7 +7116,7 @@ TEST(DebugBreakFunctionApply) { |
// where this test would enter an infinite loop. |
break_point_hit_count = 0; |
max_break_point_hit_count = 10000; // 10000 => infinite loop. |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); |
// When keeping the debug break several break will happen. |
CHECK_GT(break_point_hit_count, 1); |
@@ -6797,8 +7126,8 @@ TEST(DebugBreakFunctionApply) { |
} |
-v8::Handle<v8::Context> debugee_context; |
-v8::Handle<v8::Context> debugger_context; |
+v8::Local<v8::Context> debugee_context; |
+v8::Local<v8::Context> debugger_context; |
// Property getter that checks that current and calling contexts |
@@ -6807,7 +7136,7 @@ static void NamedGetterWithCallingContextCheck( |
v8::Local<v8::String> name, |
const v8::PropertyCallbackInfo<v8::Value>& info) { |
CHECK_EQ(0, strcmp(*v8::String::Utf8Value(name), "a")); |
- v8::Handle<v8::Context> current = info.GetIsolate()->GetCurrentContext(); |
+ v8::Local<v8::Context> current = info.GetIsolate()->GetCurrentContext(); |
CHECK(current == debugee_context); |
CHECK(current != debugger_context); |
info.GetReturnValue().Set(1); |
@@ -6820,18 +7149,19 @@ static void NamedGetterWithCallingContextCheck( |
static void DebugEventGetAtgumentPropertyValue( |
const v8::Debug::EventDetails& event_details) { |
v8::DebugEvent event = event_details.GetEvent(); |
- v8::Handle<v8::Object> exec_state = event_details.GetExecutionState(); |
+ v8::Local<v8::Object> exec_state = event_details.GetExecutionState(); |
if (event == v8::Break) { |
break_point_hit_count++; |
CHECK(debugger_context == CcTest::isolate()->GetCurrentContext()); |
- v8::Handle<v8::Function> func = v8::Handle<v8::Function>::Cast(CompileRun( |
+ v8::Local<v8::Function> func = v8::Local<v8::Function>::Cast(CompileRun( |
"(function(exec_state) {\n" |
" return (exec_state.frame(0).argumentValue(0).property('a').\n" |
" value().value() == 1);\n" |
"})")); |
const int argc = 1; |
- v8::Handle<v8::Value> argv[argc] = { exec_state }; |
- v8::Handle<v8::Value> result = func->Call(exec_state, argc, argv); |
+ v8::Local<v8::Value> argv[argc] = {exec_state}; |
+ v8::Local<v8::Value> result = |
+ func->Call(debugger_context, exec_state, argc, argv).ToLocalChecked(); |
CHECK(result->IsTrue()); |
} |
} |
@@ -6851,11 +7181,12 @@ TEST(CallingContextIsNotDebugContext) { |
debugger_context = v8::Utils::ToLocal(debug->debug_context()); |
// Create object with 'a' property accessor. |
- v8::Handle<v8::ObjectTemplate> named = v8::ObjectTemplate::New(isolate); |
- named->SetAccessor(v8::String::NewFromUtf8(isolate, "a"), |
- NamedGetterWithCallingContextCheck); |
- env->Global()->Set(v8::String::NewFromUtf8(isolate, "obj"), |
- named->NewInstance()); |
+ v8::Local<v8::ObjectTemplate> named = v8::ObjectTemplate::New(isolate); |
+ named->SetAccessor(v8_str(isolate, "a"), NamedGetterWithCallingContextCheck); |
+ CHECK(env->Global() |
+ ->Set(debugee_context, v8_str(isolate, "obj"), |
+ named->NewInstance(debugee_context).ToLocalChecked()) |
+ .FromJust()); |
// Register the debug event listener |
v8::Debug::SetDebugEventListener(DebugEventGetAtgumentPropertyValue); |
@@ -6868,12 +7199,12 @@ TEST(CallingContextIsNotDebugContext) { |
"foo"); |
break_point_hit_count = 0; |
- foo->Call(env->Global(), 0, NULL); |
+ foo->Call(debugee_context, env->Global(), 0, NULL).ToLocalChecked(); |
CHECK_EQ(1, break_point_hit_count); |
v8::Debug::SetDebugEventListener(NULL); |
- debugee_context = v8::Handle<v8::Context>(); |
- debugger_context = v8::Handle<v8::Context>(); |
+ debugee_context = v8::Local<v8::Context>(); |
+ debugger_context = v8::Local<v8::Context>(); |
CheckDebuggerUnloaded(); |
} |
@@ -6896,10 +7227,12 @@ TEST(NoDebugContextWhenDebuggerDisabled) { |
} |
-static v8::Handle<v8::Value> expected_callback_data; |
+static v8::Local<v8::Value> expected_callback_data; |
static void DebugEventContextChecker(const v8::Debug::EventDetails& details) { |
CHECK(details.GetEventContext() == expected_context); |
- CHECK(expected_callback_data->Equals(details.GetCallbackData())); |
+ CHECK(expected_callback_data->Equals(details.GetEventContext(), |
+ details.GetCallbackData()) |
+ .FromJust()); |
} |
@@ -6912,11 +7245,14 @@ TEST(DebugEventContext) { |
v8::Debug::SetDebugEventListener(DebugEventContextChecker, |
expected_callback_data); |
v8::Context::Scope context_scope(expected_context); |
- v8::Script::Compile( |
- v8::String::NewFromUtf8(isolate, "(function(){debugger;})();"))->Run(); |
+ v8::Script::Compile(expected_context, |
+ v8_str(isolate, "(function(){debugger;})();")) |
+ .ToLocalChecked() |
+ ->Run(expected_context) |
+ .ToLocalChecked(); |
expected_context.Clear(); |
v8::Debug::SetDebugEventListener(NULL); |
- expected_context_data = v8::Handle<v8::Value>(); |
+ expected_context_data = v8::Local<v8::Value>(); |
CheckDebuggerUnloaded(); |
} |
@@ -6926,21 +7262,22 @@ static bool debug_event_break_deoptimize_done = false; |
static void DebugEventBreakDeoptimize( |
const v8::Debug::EventDetails& event_details) { |
v8::DebugEvent event = event_details.GetEvent(); |
- v8::Handle<v8::Object> exec_state = event_details.GetExecutionState(); |
+ v8::Local<v8::Object> exec_state = event_details.GetExecutionState(); |
+ v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext(); |
if (event == v8::Break) { |
if (!frame_function_name.IsEmpty()) { |
// Get the name of the function. |
const int argc = 2; |
- v8::Handle<v8::Value> argv[argc] = { |
- exec_state, v8::Integer::New(CcTest::isolate(), 0) |
- }; |
- v8::Handle<v8::Value> result = |
- frame_function_name->Call(exec_state, argc, argv); |
+ v8::Local<v8::Value> argv[argc] = { |
+ exec_state, v8::Integer::New(CcTest::isolate(), 0)}; |
+ v8::Local<v8::Value> result = |
+ frame_function_name->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
if (!result->IsUndefined()) { |
char fn[80]; |
CHECK(result->IsString()); |
- v8::Handle<v8::String> function_name( |
- result->ToString(CcTest::isolate())); |
+ v8::Local<v8::String> function_name( |
+ result->ToString(context).ToLocalChecked()); |
function_name->WriteUtf8(fn); |
if (strcmp(fn, "bar") == 0) { |
i::Deoptimizer::DeoptimizeAll(CcTest::i_isolate()); |
@@ -6960,6 +7297,7 @@ TEST(DeoptimizeDuringDebugBreak) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
env.ExposeDebug(); |
+ v8::Local<v8::Context> context = env.context(); |
// Create a function for checking the function when hitting a break point. |
frame_function_name = CompileFunction(&env, |
@@ -6975,11 +7313,11 @@ TEST(DeoptimizeDuringDebugBreak) { |
// Compile and run function bar which will optimize it for some flag settings. |
v8::Local<v8::Function> f = CompileFunction(&env, "function bar(){}", "bar"); |
- f->Call(v8::Undefined(env->GetIsolate()), 0, NULL); |
+ f->Call(context, v8::Undefined(env->GetIsolate()), 0, NULL).ToLocalChecked(); |
// Set debug break and call bar again. |
v8::Debug::DebugBreak(env->GetIsolate()); |
- f->Call(v8::Undefined(env->GetIsolate()), 0, NULL); |
+ f->Call(context, v8::Undefined(env->GetIsolate()), 0, NULL).ToLocalChecked(); |
CHECK(debug_event_break_deoptimize_done); |
@@ -6991,46 +7329,58 @@ static void DebugEventBreakWithOptimizedStack( |
const v8::Debug::EventDetails& event_details) { |
v8::Isolate* isolate = event_details.GetEventContext()->GetIsolate(); |
v8::DebugEvent event = event_details.GetEvent(); |
- v8::Handle<v8::Object> exec_state = event_details.GetExecutionState(); |
+ v8::Local<v8::Object> exec_state = event_details.GetExecutionState(); |
+ v8::Local<v8::Context> context = isolate->GetCurrentContext(); |
if (event == v8::Break) { |
if (!frame_function_name.IsEmpty()) { |
for (int i = 0; i < 2; i++) { |
const int argc = 2; |
- v8::Handle<v8::Value> argv[argc] = { |
- exec_state, v8::Integer::New(isolate, i) |
- }; |
+ v8::Local<v8::Value> argv[argc] = {exec_state, |
+ v8::Integer::New(isolate, i)}; |
// Get the name of the function in frame i. |
- v8::Handle<v8::Value> result = |
- frame_function_name->Call(exec_state, argc, argv); |
+ v8::Local<v8::Value> result = |
+ frame_function_name->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
CHECK(result->IsString()); |
- v8::Handle<v8::String> function_name(result->ToString(isolate)); |
- CHECK(function_name->Equals(v8::String::NewFromUtf8(isolate, "loop"))); |
+ v8::Local<v8::String> function_name( |
+ result->ToString(context).ToLocalChecked()); |
+ CHECK( |
+ function_name->Equals(context, v8_str(isolate, "loop")).FromJust()); |
// Get the name of the first argument in frame i. |
- result = frame_argument_name->Call(exec_state, argc, argv); |
+ result = frame_argument_name->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
CHECK(result->IsString()); |
- v8::Handle<v8::String> argument_name(result->ToString(isolate)); |
- CHECK(argument_name->Equals(v8::String::NewFromUtf8(isolate, "count"))); |
+ v8::Local<v8::String> argument_name( |
+ result->ToString(context).ToLocalChecked()); |
+ CHECK(argument_name->Equals(context, v8_str(isolate, "count")) |
+ .FromJust()); |
// Get the value of the first argument in frame i. If the |
// funtion is optimized the value will be undefined, otherwise |
// the value will be '1 - i'. |
// |
// TODO(3141533): We should be able to get the real value for |
// optimized frames. |
- result = frame_argument_value->Call(exec_state, argc, argv); |
- CHECK(result->IsUndefined() || (result->Int32Value() == 1 - i)); |
+ result = frame_argument_value->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
+ CHECK(result->IsUndefined() || |
+ (result->Int32Value(context).FromJust() == 1 - i)); |
// Get the name of the first local variable. |
- result = frame_local_name->Call(exec_state, argc, argv); |
+ result = frame_local_name->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
CHECK(result->IsString()); |
- v8::Handle<v8::String> local_name(result->ToString(isolate)); |
- CHECK(local_name->Equals(v8::String::NewFromUtf8(isolate, "local"))); |
+ v8::Local<v8::String> local_name( |
+ result->ToString(context).ToLocalChecked()); |
+ CHECK(local_name->Equals(context, v8_str(isolate, "local")).FromJust()); |
// Get the value of the first local variable. If the function |
// is optimized the value will be undefined, otherwise it will |
// be 42. |
// |
// TODO(3141533): We should be able to get the real value for |
// optimized frames. |
- result = frame_local_value->Call(exec_state, argc, argv); |
- CHECK(result->IsUndefined() || (result->Int32Value() == 42)); |
+ result = frame_local_value->Call(context, exec_state, argc, argv) |
+ .ToLocalChecked(); |
+ CHECK(result->IsUndefined() || |
+ (result->Int32Value(context).FromJust() == 42)); |
} |
} |
} |
@@ -7046,6 +7396,7 @@ static void ScheduleBreak(const v8::FunctionCallbackInfo<v8::Value>& args) { |
TEST(DebugBreakStackInspection) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
+ v8::Local<v8::Context> context = env.context(); |
frame_function_name = |
CompileFunction(&env, frame_function_name_source, "frame_function_name"); |
@@ -7059,11 +7410,13 @@ TEST(DebugBreakStackInspection) { |
frame_local_value = |
CompileFunction(&env, frame_local_value_source, "frame_local_value"); |
- v8::Handle<v8::FunctionTemplate> schedule_break_template = |
+ v8::Local<v8::FunctionTemplate> schedule_break_template = |
v8::FunctionTemplate::New(env->GetIsolate(), ScheduleBreak); |
- v8::Handle<v8::Function> schedule_break = |
- schedule_break_template->GetFunction(); |
- env->Global()->Set(v8_str("scheduleBreak"), schedule_break); |
+ v8::Local<v8::Function> schedule_break = |
+ schedule_break_template->GetFunction(context).ToLocalChecked(); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str("scheduleBreak"), schedule_break) |
+ .FromJust()); |
const char* src = |
"function loop(count) {" |
@@ -7071,7 +7424,10 @@ TEST(DebugBreakStackInspection) { |
" if (count < 1) { scheduleBreak(); loop(count + 1); }" |
"}" |
"loop(0);"; |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), src))->Run(); |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), src)) |
+ .ToLocalChecked() |
+ ->Run(context) |
+ .ToLocalChecked(); |
} |
@@ -7112,7 +7468,7 @@ static void TestDebugBreakInLoop(const char* loop_head, |
CompileRun("f();"); |
CHECK_EQ(kBreaksPerTest, break_point_hit_count); |
- CHECK(!v8::V8::IsExecutionTerminating()); |
+ CHECK(!CcTest::isolate()->IsExecutionTerminating()); |
} |
} |
} |
@@ -7218,6 +7574,7 @@ v8::Local<v8::Script> inline_script; |
static void DebugBreakInlineListener( |
const v8::Debug::EventDetails& event_details) { |
v8::DebugEvent event = event_details.GetEvent(); |
+ v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext(); |
if (event != v8::Break) return; |
int expected_frame_count = 4; |
@@ -7233,7 +7590,7 @@ static void DebugBreakInlineListener( |
SNPrintF(script_vector, "%%GetFrameCount(%d)", break_id); |
v8::Local<v8::Value> result = CompileRun(script); |
- int frame_count = result->Int32Value(); |
+ int frame_count = result->Int32Value(context).FromJust(); |
CHECK_EQ(expected_frame_count, frame_count); |
for (int i = 0; i < frame_count; i++) { |
@@ -7242,10 +7599,11 @@ static void DebugBreakInlineListener( |
SNPrintF(script_vector, "%%GetFrameDetails(%d, %d)[5]", break_id, i); |
v8::Local<v8::Value> result = CompileRun(script); |
CHECK_EQ(expected_line_number[i], |
- i::Script::GetLineNumber(source_script, result->Int32Value())); |
+ i::Script::GetLineNumber(source_script, |
+ result->Int32Value(context).FromJust())); |
} |
v8::Debug::SetDebugEventListener(NULL); |
- v8::V8::TerminateExecution(CcTest::isolate()); |
+ CcTest::isolate()->TerminateExecution(); |
} |
@@ -7253,6 +7611,7 @@ TEST(DebugBreakInline) { |
i::FLAG_allow_natives_syntax = true; |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
+ v8::Local<v8::Context> context = env.context(); |
const char* source = |
"function debug(b) { \n" |
" if (b) debugger; \n" |
@@ -7269,8 +7628,9 @@ TEST(DebugBreakInline) { |
"g(true);"; |
v8::Debug::SetDebugEventListener(DebugBreakInlineListener); |
inline_script = |
- v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), source)); |
- inline_script->Run(); |
+ v8::Script::Compile(context, v8_str(env->GetIsolate(), source)) |
+ .ToLocalChecked(); |
+ inline_script->Run(context).ToLocalChecked(); |
} |
@@ -7415,11 +7775,14 @@ TEST(DebugBreakStackTrace) { |
DebugLocalContext env; |
v8::HandleScope scope(env->GetIsolate()); |
v8::Debug::SetDebugEventListener(DebugBreakStackTraceListener); |
- v8::Handle<v8::FunctionTemplate> add_debug_break_template = |
+ v8::Local<v8::Context> context = env.context(); |
+ v8::Local<v8::FunctionTemplate> add_debug_break_template = |
v8::FunctionTemplate::New(env->GetIsolate(), AddDebugBreak); |
- v8::Handle<v8::Function> add_debug_break = |
- add_debug_break_template->GetFunction(); |
- env->Global()->Set(v8_str("add_debug_break"), add_debug_break); |
+ v8::Local<v8::Function> add_debug_break = |
+ add_debug_break_template->GetFunction(context).ToLocalChecked(); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str("add_debug_break"), add_debug_break) |
+ .FromJust()); |
CompileRun("(function loop() {" |
" for (var j = 0; j < 1000; j++) {" |
@@ -7453,7 +7816,7 @@ class TerminationThread : public v8::base::Thread { |
virtual void Run() { |
terminate_requested_semaphore.Wait(); |
- v8::V8::TerminateExecution(isolate_); |
+ isolate_->TerminateExecution(); |
terminate_fired_semaphore.Signal(); |
} |
@@ -7496,18 +7859,22 @@ TEST(DebugPromiseInterceptedByTryCatch) { |
v8::Isolate* isolate = env->GetIsolate(); |
v8::HandleScope scope(isolate); |
v8::Debug::SetDebugEventListener(&DebugEventExpectNoException); |
+ v8::Local<v8::Context> context = env.context(); |
ChangeBreakOnException(false, true); |
- v8::Handle<v8::FunctionTemplate> fun = |
+ v8::Local<v8::FunctionTemplate> fun = |
v8::FunctionTemplate::New(isolate, TryCatchWrappedThrowCallback); |
- env->Global()->Set(v8_str("fun"), fun->GetFunction()); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str("fun"), |
+ fun->GetFunction(context).ToLocalChecked()) |
+ .FromJust()); |
CompileRun("var p = new Promise(function(res, rej) { fun(); res(); });"); |
CompileRun( |
"var r;" |
"p.chain(function() { r = 'resolved'; }," |
" function() { r = 'rejected'; });"); |
- CHECK(CompileRun("r")->Equals(v8_str("resolved"))); |
+ CHECK(CompileRun("r")->Equals(context, v8_str("resolved")).FromJust()); |
} |
@@ -7531,19 +7898,24 @@ TEST(DebugPromiseRejectedByCallback) { |
v8::Isolate* isolate = env->GetIsolate(); |
v8::HandleScope scope(isolate); |
v8::Debug::SetDebugEventListener(&DebugEventCountException); |
+ v8::Local<v8::Context> context = env.context(); |
ChangeBreakOnException(false, true); |
exception_event_counter = 0; |
- v8::Handle<v8::FunctionTemplate> fun = |
+ v8::Local<v8::FunctionTemplate> fun = |
v8::FunctionTemplate::New(isolate, ThrowCallback); |
- env->Global()->Set(v8_str("fun"), fun->GetFunction()); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str("fun"), |
+ fun->GetFunction(context).ToLocalChecked()) |
+ .FromJust()); |
CompileRun("var p = new Promise(function(res, rej) { fun(); res(); });"); |
CompileRun( |
"var r;" |
"p.chain(function() { r = 'resolved'; }," |
" function(e) { r = 'rejected' + e; });"); |
- CHECK(CompileRun("r")->Equals(v8_str("rejectedrejection"))); |
+ CHECK( |
+ CompileRun("r")->Equals(context, v8_str("rejectedrejection")).FromJust()); |
CHECK_EQ(1, exception_event_counter); |
} |
@@ -7553,13 +7925,17 @@ TEST(DebugBreakOnExceptionInObserveCallback) { |
v8::Isolate* isolate = env->GetIsolate(); |
v8::HandleScope scope(isolate); |
v8::Debug::SetDebugEventListener(&DebugEventCountException); |
+ v8::Local<v8::Context> context = env.context(); |
// Break on uncaught exception |
ChangeBreakOnException(false, true); |
exception_event_counter = 0; |
- v8::Handle<v8::FunctionTemplate> fun = |
+ v8::Local<v8::FunctionTemplate> fun = |
v8::FunctionTemplate::New(isolate, ThrowCallback); |
- env->Global()->Set(v8_str("fun"), fun->GetFunction()); |
+ CHECK(env->Global() |
+ ->Set(context, v8_str("fun"), |
+ fun->GetFunction(context).ToLocalChecked()) |
+ .FromJust()); |
CompileRun( |
"var obj = {};" |
@@ -7569,7 +7945,7 @@ TEST(DebugBreakOnExceptionInObserveCallback) { |
" throw Error('foo');" |
"});" |
"obj.prop = 1"); |
- CHECK(CompileRun("callbackRan")->BooleanValue()); |
+ CHECK(CompileRun("callbackRan")->BooleanValue(context).FromJust()); |
CHECK_EQ(1, exception_event_counter); |
} |