Chromium Code Reviews| Index: test/cctest/test-api.cc |
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
| index 5f82bd7f2e7ee184975588e4de3e6b7fcebbe325..aa37c3afe0aecb2b529f7cc1378bf75e5cf3f236 100644 |
| --- a/test/cctest/test-api.cc |
| +++ b/test/cctest/test-api.cc |
| @@ -17681,6 +17681,46 @@ TEST(DynamicWithSourceURLInStackTraceString) { |
| } |
| +TEST(EvalWithSourceURLInStackTraceString) { |
| + LocalContext context; |
| + v8::HandleScope scope(context->GetIsolate()); |
| + |
| + const char *source = |
| + "function outer() {\n" |
| + " var scriptContents = \"function foo() { FAIL.FAIL; } " |
| + "//# sourceURL=foo2.js\";\n" |
|
vsevik
2014/04/30 10:18:40
could you please break this string (e.g.
"//# sour
kozyatinskiy1
2014/04/30 15:46:43
Done.
|
| + " eval(scriptContents); \n" |
| + " foo(); }\n" |
| + "outer();\n"; |
| + |
| + v8::TryCatch try_catch; |
| + CompileRun(source); |
| + CHECK(try_catch.HasCaught()); |
| + v8::String::Utf8Value stack(try_catch.StackTrace()); |
|
vsevik
2014/04/30 10:18:40
StackTrace does not use your new method, so this t
|
| + CHECK(strstr(*stack, "at foo (foo2.js:1:18)") != NULL); |
| +} |
| + |
| + |
| +TEST(RecursionWithSourceURLInStackTraceString) { |
| + LocalContext context; |
| + v8::HandleScope scope(context->GetIsolate()); |
| + |
| + const char *source = |
| + "function outer() {\n" |
| + " var scriptContents = \"function boo(){ boo(); }" |
| + " function foo() { boo(); } //# sourceURL=foo2.js\";\n" |
| + " eval(scriptContents);\n" |
| + " foo(); }\n" |
| + "outer();\n"; |
| + |
| + v8::TryCatch try_catch; |
| + CompileRun(source); |
| + CHECK(try_catch.HasCaught()); |
| + v8::String::Utf8Value stack(try_catch.StackTrace()); |
|
vsevik
2014/04/30 10:18:40
ditto
kozyatinskiy1
2014/04/30 15:46:43
Done.
|
| + CHECK(strstr(*stack, "at boo (foo2.js:1:13)") != NULL); |
| +} |
| + |
| + |
| static void CreateGarbageInOldSpace() { |
| i::Factory* factory = CcTest::i_isolate()->factory(); |
| v8::HandleScope scope(CcTest::isolate()); |