| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index 5c8584d0f5f4b90013b337d92fd377bc441cbcfc..d18059cd54bdadb05e6309e198682391d63496f0 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -23999,10 +23999,8 @@ TEST(ScriptNameAndLineNumber) {
|
| CHECK_EQ(13, line_number);
|
| }
|
|
|
| -
|
| -void SourceURLHelper(const char* source, const char* expected_source_url,
|
| - const char* expected_source_mapping_url) {
|
| - Local<Script> script = v8_compile(source);
|
| +void CheckMagicComments(Handle<Script> script, const char* expected_source_url,
|
| + const char* expected_source_mapping_url) {
|
| if (expected_source_url != NULL) {
|
| v8::String::Utf8Value url(script->GetUnboundScript()->GetSourceURL());
|
| CHECK_EQ(expected_source_url, *url);
|
| @@ -24018,6 +24016,12 @@ void SourceURLHelper(const char* source, const char* expected_source_url,
|
| }
|
| }
|
|
|
| +void SourceURLHelper(const char* source, const char* expected_source_url,
|
| + const char* expected_source_mapping_url) {
|
| + Local<Script> script = v8_compile(source);
|
| + CheckMagicComments(script, expected_source_url, expected_source_mapping_url);
|
| +}
|
| +
|
|
|
| TEST(ScriptSourceURLAndSourceMappingURL) {
|
| LocalContext env;
|
| @@ -24209,7 +24213,9 @@ class TestSourceStream : public v8::ScriptCompiler::ExternalSourceStream {
|
| void RunStreamingTest(const char** chunks,
|
| v8::ScriptCompiler::StreamedSource::Encoding encoding =
|
| v8::ScriptCompiler::StreamedSource::ONE_BYTE,
|
| - bool expected_success = true) {
|
| + bool expected_success = true,
|
| + const char* expected_source_url = NULL,
|
| + const char* expected_source_mapping_url = NULL) {
|
| LocalContext env;
|
| v8::Isolate* isolate = env->GetIsolate();
|
| v8::HandleScope scope(isolate);
|
| @@ -24238,6 +24244,8 @@ void RunStreamingTest(const char** chunks,
|
| v8::Handle<Value> result(script->Run());
|
| // All scripts are supposed to return the fixed value 13 when ran.
|
| CHECK_EQ(13, result->Int32Value());
|
| + CheckMagicComments(script, expected_source_url,
|
| + expected_source_mapping_url);
|
| } else {
|
| CHECK(script.IsEmpty());
|
| CHECK(try_catch.HasCaught());
|
| @@ -24727,3 +24735,27 @@ TEST(ClassPrototypeCreationContext) {
|
| CompileRun("'use strict'; class Example { }; Example.prototype"));
|
| CHECK(env.local() == result->CreationContext());
|
| }
|
| +
|
| +
|
| +TEST(SimpleStreamingScriptWithSourceURL) {
|
| + const char* chunks[] = {"function foo() { ret", "urn 13; } f", "oo();\n",
|
| + "//# sourceURL=bar2.js\n", NULL};
|
| + RunStreamingTest(chunks, v8::ScriptCompiler::StreamedSource::UTF8, true,
|
| + "bar2.js");
|
| +}
|
| +
|
| +
|
| +TEST(StreamingScriptWithSplitSourceURL) {
|
| + const char* chunks[] = {"function foo() { ret", "urn 13; } f",
|
| + "oo();\n//# sourceURL=b", "ar2.js\n", NULL};
|
| + RunStreamingTest(chunks, v8::ScriptCompiler::StreamedSource::UTF8, true,
|
| + "bar2.js");
|
| +}
|
| +
|
| +
|
| +TEST(StreamingScriptWithSourceMappingURLInTheMiddle) {
|
| + const char* chunks[] = {"function foo() { ret", "urn 13; }\n//#",
|
| + " sourceMappingURL=bar2.js\n", "foo();", NULL};
|
| + RunStreamingTest(chunks, v8::ScriptCompiler::StreamedSource::UTF8, true, NULL,
|
| + "bar2.js");
|
| +}
|
|
|