Ignore:
Timestamp:
Apr 18, 2018, 2:47:19 AM (7 years ago)
Author:
Yusuke Suzuki
Message:

Unreviewed, reland r230697, r230720, and r230724.
https://bugs.webkit.org/show_bug.cgi?id=184600

JSTests:

  • wasm.yaml:
  • wasm/modules/constant.wasm: Added.
  • wasm/modules/constant.wat: Added.
  • wasm/modules/default-import-star-error.js: Added.

(then):

  • wasm/modules/default-import-star-error/entry.wasm: Added.
  • wasm/modules/default-import-star-error/entry.wat: Added.
  • wasm/modules/default-import-star-error/t0.js: Added.
  • wasm/modules/default-import-star-error/t1.js: Added.
  • wasm/modules/default-import-star-error/t2.js: Added.

(export.default.Cocoa):

  • wasm/modules/js-wasm-cycle.js: Added.
  • wasm/modules/js-wasm-cycle/entry.js: Added.

(from.string_appeared_here.export.return42):

  • wasm/modules/js-wasm-cycle/sum.wasm: Added.
  • wasm/modules/js-wasm-cycle/sum.wat: Added.
  • wasm/modules/js-wasm-function-namespace.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-function.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-global-namespace.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-global.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-memory-namespace.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-memory.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-start.js: Added.

(then):

  • wasm/modules/js-wasm-table-namespace.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-table.js: Added.

(assert.throws):

  • wasm/modules/memory.wasm: Added.
  • wasm/modules/memory.wat: Added.
  • wasm/modules/run-from-wasm.wasm: Added.
  • wasm/modules/run-from-wasm.wat: Added.
  • wasm/modules/run-from-wasm/check.js: Added.

(export.check):

  • wasm/modules/start.wasm: Added.
  • wasm/modules/start.wat: Added.
  • wasm/modules/sum.wasm: Added.
  • wasm/modules/sum.wat: Added.
  • wasm/modules/table.wasm: Added.
  • wasm/modules/table.wat: Added.
  • wasm/modules/wasm-imports-js-exports.js: Added.
  • wasm/modules/wasm-imports-js-exports/imports.wasm: Added.
  • wasm/modules/wasm-imports-js-exports/imports.wat: Added.
  • wasm/modules/wasm-imports-js-exports/sum.js: Added.

(export.sum):

  • wasm/modules/wasm-imports-js-re-exports-wasm-exports.js: Added.
  • wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm: Added.
  • wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat: Added.
  • wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js: Added.
  • wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm: Added.
  • wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat: Added.
  • wasm/modules/wasm-imports-wasm-exports.js: Added.
  • wasm/modules/wasm-imports-wasm-exports/imports.wasm: Added.
  • wasm/modules/wasm-imports-wasm-exports/imports.wat: Added.
  • wasm/modules/wasm-imports-wasm-exports/sum.wasm: Added.
  • wasm/modules/wasm-imports-wasm-exports/sum.wat: Added.
  • wasm/modules/wasm-js-cycle.js: Added.
  • wasm/modules/wasm-js-cycle/entry.wasm: Added.
  • wasm/modules/wasm-js-cycle/entry.wat: Added.
  • wasm/modules/wasm-js-cycle/sum.js: Added.

(from.string_appeared_here.export.sum):

  • wasm/modules/wasm-wasm-cycle.js: Added.
  • wasm/modules/wasm-wasm-cycle/entry.wasm: Added.
  • wasm/modules/wasm-wasm-cycle/entry.wat: Added.
  • wasm/modules/wasm-wasm-cycle/sum.wasm: Added.
  • wasm/modules/wasm-wasm-cycle/sum.wat: Added.

Source/JavaScriptCore:

With CatchScope check.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/ModuleLoaderPrototype.js:

(globalPrivate.newRegistryEntry):
(requestInstantiate):
(link):

  • jsc.cpp:

(convertShebangToJSComment):
(fillBufferWithContentsOfFile):
(fetchModuleFromLocalFileSystem):
(GlobalObject::moduleLoaderFetch):
(functionDollarAgentStart):
(checkException):
(runWithOptions):

  • parser/NodesAnalyzeModule.cpp:

(JSC::ImportDeclarationNode::analyzeModule):

  • parser/SourceProvider.h:

(JSC::WebAssemblySourceProvider::create):
(JSC::WebAssemblySourceProvider::WebAssemblySourceProvider):

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::hostResolveImportedModule):
(JSC::AbstractModuleRecord::resolveImport):
(JSC::AbstractModuleRecord::link):
(JSC::AbstractModuleRecord::evaluate):
(JSC::identifierToJSValue): Deleted.

  • runtime/AbstractModuleRecord.h:

(JSC::AbstractModuleRecord::moduleEnvironmentMayBeNull):
(JSC::AbstractModuleRecord::ImportEntry::isNamespace const): Deleted.

  • runtime/JSModuleEnvironment.cpp:

(JSC::JSModuleEnvironment::getOwnNonIndexPropertyNames):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::evaluate):

  • runtime/JSModuleRecord.cpp:

(JSC::JSModuleRecord::link):
(JSC::JSModuleRecord::instantiateDeclarations):

  • runtime/JSModuleRecord.h:
  • runtime/ModuleLoaderPrototype.cpp:

(JSC::moduleLoaderPrototypeParseModule):
(JSC::moduleLoaderPrototypeRequestedModules):
(JSC::moduleLoaderPrototypeModuleDeclarationInstantiation):

  • wasm/WasmCreationMode.h: Copied from Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.h.
  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::getWasmBufferFromValue):
(JSC::createSourceBufferFromValue):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finalizeCreation):
(JSC::JSWebAssemblyInstance::createPrivateModuleKey):
(JSC::JSWebAssemblyInstance::create):

  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::constructJSWebAssemblyInstance):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::prepareLink):
(JSC::WebAssemblyModuleRecord::link):

  • wasm/js/WebAssemblyModuleRecord.h:
  • wasm/js/WebAssemblyPrototype.cpp:

(JSC::resolve):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::WebAssemblyPrototype::instantiate):
(JSC::webAssemblyInstantiateFunc):
(JSC::webAssemblyValidateFunc):

  • wasm/js/WebAssemblyPrototype.h:

Tools:

  • Scripts/run-jsc-stress-tests:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/parser/NodesAnalyzeModule.cpp

    r230741 r230759  
    5353    for (auto* specifier : m_specifierList->specifiers()) {
    5454        analyzer.moduleRecord()->addImportEntry(JSModuleRecord::ImportEntry {
     55            specifier->importedName() == analyzer.vm().propertyNames->timesIdentifier
     56                ? JSModuleRecord::ImportEntryType::Namespace : JSModuleRecord::ImportEntryType::Single,
    5557            m_moduleName->moduleName(),
    5658            specifier->importedName(),
    57             specifier->localName()
     59            specifier->localName(),
    5860        });
    5961    }
Note: See TracChangeset for help on using the changeset viewer.