| Index: src/api.cc
|
| diff --git a/src/api.cc b/src/api.cc
|
| index 0393693e570dd7c7c128a6f827fd9e3f846453fe..b36211e21da2e47203eecfe192fc724defd0eac5 100644
|
| --- a/src/api.cc
|
| +++ b/src/api.cc
|
| @@ -1563,10 +1563,9 @@ Local<UnboundScript> Script::GetUnboundScript() {
|
| }
|
|
|
|
|
| -Local<UnboundScript> ScriptCompiler::CompileUnbound(
|
| - Isolate* v8_isolate,
|
| - Source* source,
|
| - CompileOptions options) {
|
| +Local<UnboundScript> ScriptCompiler::CompileUnboundInternal(
|
| + Isolate* v8_isolate, Source* source, CompileOptions options,
|
| + bool is_module) {
|
| i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
|
| ON_BAILOUT(isolate, "v8::ScriptCompiler::CompileUnbound()",
|
| return Local<UnboundScript>());
|
| @@ -1627,7 +1626,7 @@ Local<UnboundScript> ScriptCompiler::CompileUnbound(
|
| i::Handle<i::SharedFunctionInfo> result = i::Compiler::CompileScript(
|
| str, name_obj, line_offset, column_offset, is_embedder_debug_script,
|
| is_shared_cross_origin, isolate->native_context(), NULL, &script_data,
|
| - options, i::NOT_NATIVES_CODE);
|
| + options, i::NOT_NATIVES_CODE, is_module);
|
| has_pending_exception = result.is_null();
|
| if (has_pending_exception && script_data != NULL) {
|
| // This case won't happen during normal operation; we have compiled
|
| @@ -1656,13 +1655,20 @@ Local<UnboundScript> ScriptCompiler::CompileUnbound(
|
| }
|
|
|
|
|
| +Local<UnboundScript> ScriptCompiler::CompileUnbound(Isolate* v8_isolate,
|
| + Source* source,
|
| + CompileOptions options) {
|
| + return CompileUnboundInternal(v8_isolate, source, options, false);
|
| +}
|
| +
|
| +
|
| Local<Script> ScriptCompiler::Compile(
|
| Isolate* v8_isolate,
|
| Source* source,
|
| CompileOptions options) {
|
| i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
|
| ON_BAILOUT(isolate, "v8::ScriptCompiler::Compile()", return Local<Script>());
|
| - LOG_API(isolate, "ScriptCompiler::CompiletBound()");
|
| + LOG_API(isolate, "ScriptCompiler::CompileBound()");
|
| ENTER_V8(isolate);
|
| Local<UnboundScript> generic = CompileUnbound(v8_isolate, source, options);
|
| if (generic.IsEmpty()) return Local<Script>();
|
| @@ -1670,6 +1676,21 @@ Local<Script> ScriptCompiler::Compile(
|
| }
|
|
|
|
|
| +Local<Script> ScriptCompiler::CompileModule(Isolate* v8_isolate, Source* source,
|
| + CompileOptions options) {
|
| + CHECK(i::FLAG_harmony_modules);
|
| + i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
|
| + ON_BAILOUT(isolate, "v8::ScriptCompiler::CompileModule()",
|
| + return Local<Script>());
|
| + LOG_API(isolate, "ScriptCompiler::CompileModule()");
|
| + ENTER_V8(isolate);
|
| + Local<UnboundScript> generic =
|
| + CompileUnboundInternal(v8_isolate, source, options, true);
|
| + if (generic.IsEmpty()) return Local<Script>();
|
| + return generic->BindToCurrentContext();
|
| +}
|
| +
|
| +
|
| ScriptCompiler::ScriptStreamingTask* ScriptCompiler::StartStreamingScript(
|
| Isolate* v8_isolate, StreamedSource* source, CompileOptions options) {
|
| i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
|
|
|