Index: test/cctest/test-debug.cc |
diff --git a/test/cctest/test-debug.cc b/test/cctest/test-debug.cc |
index 69c10c29d0fd141dfbe02152d13c5978c721f2bf..2f0674a34d98b94c6183ad10ed7ed4347c4c02ff 100644 |
--- a/test/cctest/test-debug.cc |
+++ b/test/cctest/test-debug.cc |
@@ -765,6 +765,7 @@ static void DebugEventEvaluate( |
CHECK_NE(debug->break_id(), 0); |
if (event == v8::Break) { |
+ break_point_hit_count++; |
for (int i = 0; checks[i].expr != NULL; i++) { |
const int argc = 3; |
v8::Handle<v8::Value> argv[argc] = { |
@@ -2406,7 +2407,7 @@ TEST(DebugEvaluate) { |
}; |
// 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 barbar function |
+ // location. For "y=0" the "y" is at position 15 in the foo function |
// therefore setting breakpoint at position 15 will break at "y=0" and |
// setting it higher will break after. |
v8::Local<v8::Function> foo = CompileFunction(&env, |
@@ -2439,6 +2440,34 @@ TEST(DebugEvaluate) { |
checks = checks_hh; |
foo->Call(env->Global(), 1, argv_foo); |
+ // Test that overriding Object.prototype will not interfere into evaluation |
+ // on call frame. |
+ v8::Local<v8::Function> zoo = |
+ CompileFunction(&env, |
+ "x = undefined;" |
+ "function zoo(t) {" |
+ " var a=x;" |
+ " Object.prototype.x = 42;" |
+ " x=t;" |
+ " y=0;" // To ensure break location. |
+ " delete Object.prototype.x;" |
+ " x=a;" |
+ "}", |
+ "zoo"); |
+ 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!")}; |
+ |
+ // 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); |
+ CHECK_EQ(1, break_point_hit_count); |
+ ClearBreakPoint(bp); |
+ |
// Test function with an inner function. The "y=0" is in function barbar |
// to provide a break location. For "y=0" the "y" is at position 8 in the |
// barbar function therefore setting breakpoint at position 8 will break at |