Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(316)

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp

Issue 2566513002: Create bare-bones ScriptModule class (Closed)
Patch Set: Update copyrights Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 ? cacheHandler->cachedMetadata(cacheTag(CacheTagCode, cacheHandler)) 486 ? cacheHandler->cachedMetadata(cacheTag(CacheTagCode, cacheHandler))
487 : nullptr); 487 : nullptr);
488 std::unique_ptr<CompileFn> compileFn = 488 std::unique_ptr<CompileFn> compileFn =
489 streamer ? selectCompileFunction(cacheOptions, resource, streamer) 489 streamer ? selectCompileFunction(cacheOptions, resource, streamer)
490 : selectCompileFunction(cacheOptions, cacheHandler, codeCache, 490 : selectCompileFunction(cacheOptions, cacheHandler, codeCache,
491 code, cacheabilityIfNoHandler); 491 code, cacheabilityIfNoHandler);
492 492
493 return (*compileFn)(isolate, code, origin); 493 return (*compileFn)(isolate, code, origin);
494 } 494 }
495 495
496 v8::MaybeLocal<v8::Module> V8ScriptRunner::compileModule(
497 v8::Isolate* isolate,
498 const String& source,
499 const String& fileName) {
500 TRACE_EVENT1("v8", "v8.compileModule", "fileName", fileName.utf8());
501 // TODO(adamk): Add Inspector integration?
502 // TODO(adamk): Pass more info into ScriptOrigin.
503 v8::ScriptOrigin origin(v8String(isolate, fileName));
504 v8::ScriptCompiler::Source scriptSource(v8String(isolate, source), origin);
505 return v8::ScriptCompiler::CompileModule(isolate, &scriptSource);
506 }
507
496 v8::MaybeLocal<v8::Value> V8ScriptRunner::runCompiledScript( 508 v8::MaybeLocal<v8::Value> V8ScriptRunner::runCompiledScript(
497 v8::Isolate* isolate, 509 v8::Isolate* isolate,
498 v8::Local<v8::Script> script, 510 v8::Local<v8::Script> script,
499 ExecutionContext* context) { 511 ExecutionContext* context) {
500 ASSERT(!script.IsEmpty()); 512 ASSERT(!script.IsEmpty());
501 ScopedFrameBlamer frameBlamer( 513 ScopedFrameBlamer frameBlamer(
502 context->isDocument() ? toDocument(context)->frame() : nullptr); 514 context->isDocument() ? toDocument(context)->frame() : nullptr);
503 TRACE_EVENT1("v8", "v8.run", "fileName", 515 TRACE_EVENT1("v8", "v8.run", "fileName",
504 TRACE_STR_COPY(*v8::String::Utf8Value( 516 TRACE_STR_COPY(*v8::String::Utf8Value(
505 script->GetUnboundScript()->GetScriptName()))); 517 script->GetUnboundScript()->GetScriptName())));
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 TRACE_EVENT0("v8", "v8.callFunction"); 665 TRACE_EVENT0("v8", "v8.callFunction");
654 CHECK(!ThreadState::current()->isWrapperTracingForbidden()); 666 CHECK(!ThreadState::current()->isWrapperTracingForbidden());
655 v8::MicrotasksScope microtasksScope(isolate, 667 v8::MicrotasksScope microtasksScope(isolate,
656 v8::MicrotasksScope::kDoNotRunMicrotasks); 668 v8::MicrotasksScope::kDoNotRunMicrotasks);
657 v8::MaybeLocal<v8::Value> result = 669 v8::MaybeLocal<v8::Value> result =
658 function->Call(isolate->GetCurrentContext(), receiver, argc, args); 670 function->Call(isolate->GetCurrentContext(), receiver, argc, args);
659 crashIfIsolateIsDead(isolate); 671 crashIfIsolateIsDead(isolate);
660 return result; 672 return result;
661 } 673 }
662 674
675 v8::MaybeLocal<v8::Value> V8ScriptRunner::evaluateModule(
676 v8::Local<v8::Module> module,
677 v8::Local<v8::Context> context,
678 v8::Isolate* isolate) {
679 TRACE_EVENT0("v8", "v8.evaluateModule");
680 v8::MicrotasksScope microtasksScope(isolate,
681 v8::MicrotasksScope::kRunMicrotasks);
682 return module->Evaluate(context);
683 }
684
663 v8::MaybeLocal<v8::Object> V8ScriptRunner::instantiateObject( 685 v8::MaybeLocal<v8::Object> V8ScriptRunner::instantiateObject(
664 v8::Isolate* isolate, 686 v8::Isolate* isolate,
665 v8::Local<v8::ObjectTemplate> objectTemplate) { 687 v8::Local<v8::ObjectTemplate> objectTemplate) {
666 TRACE_EVENT0("v8", "v8.newInstance"); 688 TRACE_EVENT0("v8", "v8.newInstance");
667 689
668 v8::MicrotasksScope microtasksScope(isolate, 690 v8::MicrotasksScope microtasksScope(isolate,
669 v8::MicrotasksScope::kDoNotRunMicrotasks); 691 v8::MicrotasksScope::kDoNotRunMicrotasks);
670 v8::MaybeLocal<v8::Object> result = 692 v8::MaybeLocal<v8::Object> result =
671 objectTemplate->NewInstance(isolate->GetCurrentContext()); 693 objectTemplate->NewInstance(isolate->GetCurrentContext());
672 crashIfIsolateIsDead(isolate); 694 crashIfIsolateIsDead(isolate);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
745 v8AtomicString(isolate, "((e) => { throw e; })"), origin) 767 v8AtomicString(isolate, "((e) => { throw e; })"), origin)
746 .ToLocalChecked(); 768 .ToLocalChecked();
747 v8::Local<v8::Function> thrower = runCompiledInternalScript(isolate, script) 769 v8::Local<v8::Function> thrower = runCompiledInternalScript(isolate, script)
748 .ToLocalChecked() 770 .ToLocalChecked()
749 .As<v8::Function>(); 771 .As<v8::Function>();
750 v8::Local<v8::Value> args[] = {exception}; 772 v8::Local<v8::Value> args[] = {exception};
751 callInternalFunction(thrower, thrower, WTF_ARRAY_LENGTH(args), args, isolate); 773 callInternalFunction(thrower, thrower, WTF_ARRAY_LENGTH(args), args, isolate);
752 } 774 }
753 775
754 } // namespace blink 776 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698