<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[207572] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/207572">207572</a></dd>
<dt>Author</dt> <dd>jfbastien@apple.com</dd>
<dt>Date</dt> <dd>2016-10-19 15:11:11 -0700 (Wed, 19 Oct 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>JavaScript WebAssembly API: baby steps

 - Expand WebAssembly constructors into their own files. This requires a lot of
   boilerplate, as well as adding the .lut.h files. All of the
   JSWebAssembly*.{h,cpp}, as well as Constructor and Prototype files, are
   currently the same between the 4 specified WebAssembly constructors. It'll be
   easy to implement individual functions on constructed objects as per the
   spec, and have each of these files diverge. The error constructors are also
   similar, except that their instance derives from ErrorInstance.
 - Use constructor macro when initializing the global object.
 - Dramatically improve testing of the WebAssembly API by checking for
   properties specified in the spec [*].
 - Clean up assert.js' exception testing.
 - Fix a copy-paste bug in wasm.json: floating-point const return values were
   swapped.

[*] https://github.com/WebAssembly/design/blob/master/JS.md

Implement more of the JavaScript WebAssembly API
https://bugs.webkit.org/show_bug.cgi?id=163571

Reviewed by Keith Miller.

JSTests:

* wasm/assert.js:
(export.const.isUndef): add this useful helper
(export.const.throws): fold other throw checks into this one, and check message as well
* wasm/js-api/test_basic_api.js:
(const.checkOwnPropertyDescriptor): check own property descriptor follows the spec
* wasm/self-test/test_BuilderJSON.js:
(const.assertOpThrows): use new assert API
(CheckedOpcodeArgumentsTooMany): ditto
(CheckedOpcodeArgumentsNotEnough): ditto
(CallInvalid): ditto
(I32ConstInvalid): ditto
(F32ConstInvalid): ditto (and this caugth the JSON copy-paste bug)
(F64ConstInvalid): ditto
* wasm/self-test/test_LowLevelBinary_varint.js: use new assert API
* wasm/self-test/test_LowLevelBinary_varuint.js: use new assert API
* wasm/utilities.js: add &quot;global&quot; object, used in basic API test (to access global.WebAssembly).
* wasm/wasm.json: fix copy-paste

Source/JavaScriptCore:

* CMakeLists.txt: add .lut.h generation
* DerivedSources.make: ditto
* JavaScriptCore.xcodeproj/project.pbxproj: add .lut.h generation and all the new files
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init): use macro to list all constructors
* wasm/WebAssemblyObject.cpp: unboilerplate, all constructors into their own files
* wasm/WebAssemblyObject.h: ditto
* wasm/js/JSWebAssemblyCompileError.cpp: Added.
(JSC::JSWebAssemblyCompileError::create):
(JSC::JSWebAssemblyCompileError::createStructure):
(JSC::JSWebAssemblyCompileError::JSWebAssemblyCompileError):
(JSC::JSWebAssemblyCompileError::finishCreation):
(JSC::JSWebAssemblyCompileError::destroy):
(JSC::JSWebAssemblyCompileError::visitChildren):
* wasm/js/JSWebAssemblyCompileError.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
* wasm/js/JSWebAssemblyInstance.cpp: Added.
(JSC::JSWebAssemblyInstance::create):
(JSC::JSWebAssemblyInstance::createStructure):
(JSC::JSWebAssemblyInstance::JSWebAssemblyInstance):
(JSC::JSWebAssemblyInstance::finishCreation):
(JSC::JSWebAssemblyInstance::destroy):
(JSC::JSWebAssemblyInstance::visitChildren):
* wasm/js/JSWebAssemblyInstance.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
* wasm/js/JSWebAssemblyMemory.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::JSWebAssemblyMemory::create):
(JSC::JSWebAssemblyMemory::createStructure):
(JSC::JSWebAssemblyMemory::JSWebAssemblyMemory):
(JSC::JSWebAssemblyMemory::finishCreation):
(JSC::JSWebAssemblyMemory::destroy):
(JSC::JSWebAssemblyMemory::visitChildren):
* wasm/js/JSWebAssemblyMemory.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
* wasm/js/JSWebAssemblyModule.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::JSWebAssemblyModule::create):
(JSC::JSWebAssemblyModule::createStructure):
(JSC::JSWebAssemblyModule::JSWebAssemblyModule):
(JSC::JSWebAssemblyModule::finishCreation):
(JSC::JSWebAssemblyModule::destroy):
(JSC::JSWebAssemblyModule::visitChildren):
* wasm/js/JSWebAssemblyModule.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
* wasm/js/JSWebAssemblyRuntimeError.cpp: Added.
(JSC::JSWebAssemblyRuntimeError::create):
(JSC::JSWebAssemblyRuntimeError::createStructure):
(JSC::JSWebAssemblyRuntimeError::JSWebAssemblyRuntimeError):
(JSC::JSWebAssemblyRuntimeError::finishCreation):
(JSC::JSWebAssemblyRuntimeError::destroy):
(JSC::JSWebAssemblyRuntimeError::visitChildren):
* wasm/js/JSWebAssemblyRuntimeError.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
* wasm/js/JSWebAssemblyTable.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::JSWebAssemblyTable::create):
(JSC::JSWebAssemblyTable::createStructure):
(JSC::JSWebAssemblyTable::JSWebAssemblyTable):
(JSC::JSWebAssemblyTable::finishCreation):
(JSC::JSWebAssemblyTable::destroy):
(JSC::JSWebAssemblyTable::visitChildren):
* wasm/js/JSWebAssemblyTable.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
* wasm/js/WebAssemblyCompileErrorConstructor.cpp: Added.
(JSC::constructJSWebAssemblyCompileError):
(JSC::callJSWebAssemblyCompileError):
(JSC::WebAssemblyCompileErrorConstructor::create):
(JSC::WebAssemblyCompileErrorConstructor::createStructure):
(JSC::WebAssemblyCompileErrorConstructor::finishCreation):
(JSC::WebAssemblyCompileErrorConstructor::WebAssemblyCompileErrorConstructor):
(JSC::WebAssemblyCompileErrorConstructor::getConstructData):
(JSC::WebAssemblyCompileErrorConstructor::getCallData):
(JSC::WebAssemblyCompileErrorConstructor::visitChildren):
* wasm/js/WebAssemblyCompileErrorConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::WebAssemblyCompileErrorConstructor::CompileErrorStructure):
* wasm/js/WebAssemblyCompileErrorPrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::WebAssemblyCompileErrorPrototype::create):
(JSC::WebAssemblyCompileErrorPrototype::createStructure):
(JSC::WebAssemblyCompileErrorPrototype::finishCreation):
(JSC::WebAssemblyCompileErrorPrototype::WebAssemblyCompileErrorPrototype):
* wasm/js/WebAssemblyCompileErrorPrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
* wasm/js/WebAssemblyInstanceConstructor.cpp: Added.
(JSC::constructJSWebAssemblyInstance):
(JSC::callJSWebAssemblyInstance):
(JSC::WebAssemblyInstanceConstructor::create):
(JSC::WebAssemblyInstanceConstructor::createStructure):
(JSC::WebAssemblyInstanceConstructor::finishCreation):
(JSC::WebAssemblyInstanceConstructor::WebAssemblyInstanceConstructor):
(JSC::WebAssemblyInstanceConstructor::getConstructData):
(JSC::WebAssemblyInstanceConstructor::getCallData):
(JSC::WebAssemblyInstanceConstructor::visitChildren):
* wasm/js/WebAssemblyInstanceConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::WebAssemblyInstanceConstructor::InstanceStructure):
* wasm/js/WebAssemblyInstancePrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::WebAssemblyInstancePrototype::create):
(JSC::WebAssemblyInstancePrototype::createStructure):
(JSC::WebAssemblyInstancePrototype::finishCreation):
(JSC::WebAssemblyInstancePrototype::WebAssemblyInstancePrototype):
* wasm/js/WebAssemblyInstancePrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
* wasm/js/WebAssemblyMemoryConstructor.cpp: Added.
(JSC::constructJSWebAssemblyMemory):
(JSC::callJSWebAssemblyMemory):
(JSC::WebAssemblyMemoryConstructor::create):
(JSC::WebAssemblyMemoryConstructor::createStructure):
(JSC::WebAssemblyMemoryConstructor::finishCreation):
(JSC::WebAssemblyMemoryConstructor::WebAssemblyMemoryConstructor):
(JSC::WebAssemblyMemoryConstructor::getConstructData):
(JSC::WebAssemblyMemoryConstructor::getCallData):
(JSC::WebAssemblyMemoryConstructor::visitChildren):
* wasm/js/WebAssemblyMemoryConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::WebAssemblyMemoryConstructor::MemoryStructure):
* wasm/js/WebAssemblyMemoryPrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::WebAssemblyMemoryPrototype::create):
(JSC::WebAssemblyMemoryPrototype::createStructure):
(JSC::WebAssemblyMemoryPrototype::finishCreation):
(JSC::WebAssemblyMemoryPrototype::WebAssemblyMemoryPrototype):
* wasm/js/WebAssemblyMemoryPrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
* wasm/js/WebAssemblyModuleConstructor.cpp: Added.
(JSC::constructJSWebAssemblyModule):
(JSC::callJSWebAssemblyModule):
(JSC::WebAssemblyModuleConstructor::create):
(JSC::WebAssemblyModuleConstructor::createStructure):
(JSC::WebAssemblyModuleConstructor::finishCreation):
(JSC::WebAssemblyModuleConstructor::WebAssemblyModuleConstructor):
(JSC::WebAssemblyModuleConstructor::getConstructData):
(JSC::WebAssemblyModuleConstructor::getCallData):
(JSC::WebAssemblyModuleConstructor::visitChildren):
* wasm/js/WebAssemblyModuleConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::WebAssemblyModuleConstructor::ModuleStructure):
* wasm/js/WebAssemblyModulePrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::WebAssemblyModulePrototype::create):
(JSC::WebAssemblyModulePrototype::createStructure):
(JSC::WebAssemblyModulePrototype::finishCreation):
(JSC::WebAssemblyModulePrototype::WebAssemblyModulePrototype):
* wasm/js/WebAssemblyModulePrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
* wasm/js/WebAssemblyRuntimeErrorConstructor.cpp: Added.
(JSC::constructJSWebAssemblyRuntimeError):
(JSC::callJSWebAssemblyRuntimeError):
(JSC::WebAssemblyRuntimeErrorConstructor::create):
(JSC::WebAssemblyRuntimeErrorConstructor::createStructure):
(JSC::WebAssemblyRuntimeErrorConstructor::finishCreation):
(JSC::WebAssemblyRuntimeErrorConstructor::WebAssemblyRuntimeErrorConstructor):
(JSC::WebAssemblyRuntimeErrorConstructor::getConstructData):
(JSC::WebAssemblyRuntimeErrorConstructor::getCallData):
(JSC::WebAssemblyRuntimeErrorConstructor::visitChildren):
* wasm/js/WebAssemblyRuntimeErrorConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::WebAssemblyRuntimeErrorConstructor::RuntimeErrorStructure):
* wasm/js/WebAssemblyRuntimeErrorPrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::WebAssemblyRuntimeErrorPrototype::create):
(JSC::WebAssemblyRuntimeErrorPrototype::createStructure):
(JSC::WebAssemblyRuntimeErrorPrototype::finishCreation):
(JSC::WebAssemblyRuntimeErrorPrototype::WebAssemblyRuntimeErrorPrototype):
* wasm/js/WebAssemblyRuntimeErrorPrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
* wasm/js/WebAssemblyTableConstructor.cpp: Added.
(JSC::constructJSWebAssemblyTable):
(JSC::callJSWebAssemblyTable):
(JSC::WebAssemblyTableConstructor::create):
(JSC::WebAssemblyTableConstructor::createStructure):
(JSC::WebAssemblyTableConstructor::finishCreation):
(JSC::WebAssemblyTableConstructor::WebAssemblyTableConstructor):
(JSC::WebAssemblyTableConstructor::getConstructData):
(JSC::WebAssemblyTableConstructor::getCallData):
(JSC::WebAssemblyTableConstructor::visitChildren):
* wasm/js/WebAssemblyTableConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::WebAssemblyTableConstructor::TableStructure):
* wasm/js/WebAssemblyTablePrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
(JSC::WebAssemblyTablePrototype::create):
(JSC::WebAssemblyTablePrototype::createStructure):
(JSC::WebAssemblyTablePrototype::finishCreation):
(JSC::WebAssemblyTablePrototype::WebAssemblyTablePrototype):
* wasm/js/WebAssemblyTablePrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkJSTestsChangeLog">trunk/JSTests/ChangeLog</a></li>
<li><a href="#trunkJSTestswasmassertjs">trunk/JSTests/wasm/assert.js</a></li>
<li><a href="#trunkJSTestswasmjsapitest_basic_apijs">trunk/JSTests/wasm/js-api/test_basic_api.js</a></li>
<li><a href="#trunkJSTestswasmselftesttest_BuilderJSONjs">trunk/JSTests/wasm/self-test/test_BuilderJSON.js</a></li>
<li><a href="#trunkJSTestswasmselftesttest_LowLevelBinary_varintjs">trunk/JSTests/wasm/self-test/test_LowLevelBinary_varint.js</a></li>
<li><a href="#trunkJSTestswasmselftesttest_LowLevelBinary_varuintjs">trunk/JSTests/wasm/self-test/test_LowLevelBinary_varuint.js</a></li>
<li><a href="#trunkJSTestswasmutilitiesjs">trunk/JSTests/wasm/utilities.js</a></li>
<li><a href="#trunkJSTestswasmwasmjson">trunk/JSTests/wasm/wasm.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreCMakeListstxt">trunk/Source/JavaScriptCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreDerivedSourcesmake">trunk/Source/JavaScriptCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj">trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGlobalObjectcpp">trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmWebAssemblyObjectcpp">trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmWebAssemblyObjecth">trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/Source/JavaScriptCore/wasm/js/</li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyCompileErrorcpp">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyCompileErrorh">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyInstancecpp">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyInstanceh">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyMemorycpp">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyMemoryh">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyModulecpp">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyModuleh">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyRuntimeErrorcpp">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyRuntimeErrorh">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyTablecpp">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyTableh">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyCompileErrorConstructorcpp">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyCompileErrorConstructorh">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorConstructor.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyCompileErrorPrototypecpp">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyCompileErrorPrototypeh">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyInstanceConstructorcpp">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyInstanceConstructorh">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyInstancePrototypecpp">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyInstancePrototypeh">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyMemoryConstructorcpp">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyMemoryConstructorh">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyMemoryPrototypecpp">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyMemoryPrototypeh">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryPrototype.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyModuleConstructorcpp">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyModuleConstructorh">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyModulePrototypecpp">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyModulePrototypeh">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyRuntimeErrorConstructorcpp">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyRuntimeErrorConstructorh">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorConstructor.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyRuntimeErrorPrototypecpp">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyRuntimeErrorPrototypeh">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyTableConstructorcpp">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyTableConstructorh">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyTablePrototypecpp">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsWebAssemblyTablePrototypeh">trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkJSTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/ChangeLog (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/ChangeLog        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/JSTests/ChangeLog        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -1,3 +1,46 @@
</span><ins>+2016-10-19  JF Bastien  &lt;jfbastien@apple.com&gt;
+
+        JavaScript WebAssembly API: baby steps
+
+         - Expand WebAssembly constructors into their own files. This requires a lot of
+           boilerplate, as well as adding the .lut.h files. All of the
+           JSWebAssembly*.{h,cpp}, as well as Constructor and Prototype files, are
+           currently the same between the 4 specified WebAssembly constructors. It'll be
+           easy to implement individual functions on constructed objects as per the
+           spec, and have each of these files diverge. The error constructors are also
+           similar, except that their instance derives from ErrorInstance.
+         - Use constructor macro when initializing the global object.
+         - Dramatically improve testing of the WebAssembly API by checking for
+           properties specified in the spec [*].
+         - Clean up assert.js' exception testing.
+         - Fix a copy-paste bug in wasm.json: floating-point const return values were
+           swapped.
+
+        [*] https://github.com/WebAssembly/design/blob/master/JS.md
+
+        Implement more of the JavaScript WebAssembly API
+        https://bugs.webkit.org/show_bug.cgi?id=163571
+
+        Reviewed by Keith Miller.
+
+        * wasm/assert.js:
+        (export.const.isUndef): add this useful helper
+        (export.const.throws): fold other throw checks into this one, and check message as well
+        * wasm/js-api/test_basic_api.js:
+        (const.checkOwnPropertyDescriptor): check own property descriptor follows the spec
+        * wasm/self-test/test_BuilderJSON.js:
+        (const.assertOpThrows): use new assert API
+        (CheckedOpcodeArgumentsTooMany): ditto
+        (CheckedOpcodeArgumentsNotEnough): ditto
+        (CallInvalid): ditto
+        (I32ConstInvalid): ditto
+        (F32ConstInvalid): ditto (and this caugth the JSON copy-paste bug)
+        (F64ConstInvalid): ditto
+        * wasm/self-test/test_LowLevelBinary_varint.js: use new assert API
+        * wasm/self-test/test_LowLevelBinary_varuint.js: use new assert API
+        * wasm/utilities.js: add &quot;global&quot; object, used in basic API test (to access global.WebAssembly).
+        * wasm/wasm.json: fix copy-paste
+
</ins><span class="cx"> 2016-10-19  Caitlin Potter  &lt;caitp@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [JSC] forbid &quot;use strict&quot; directive in generator functions with non-simple parameters
</span></span></pre></div>
<a id="trunkJSTestswasmassertjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/wasm/assert.js (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/wasm/assert.js        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/JSTests/wasm/assert.js        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -24,10 +24,15 @@
</span><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> export const notUndef = (v) =&gt; {
</span><del>-    if (v === undefined)
</del><ins>+    if (typeof v === &quot;undefined&quot;)
</ins><span class="cx">         throw new Error(&quot;Shouldn't be undefined&quot;);
</span><span class="cx"> };
</span><span class="cx"> 
</span><ins>+export const isUndef = (v) =&gt; {
+    if (typeof v !== &quot;undefined&quot;)
+        throw new Error(&quot;Should be undefined&quot;);
+};
+
</ins><span class="cx"> export const eq = (lhs, rhs) =&gt; {
</span><span class="cx">     if (lhs !== rhs)
</span><span class="cx">         throw new Error(`Not the same: &quot;${lhs}&quot; and &quot;${rhs}&quot;`);
</span><span class="lines">@@ -40,30 +45,13 @@
</span><span class="cx">         throw new Error(`Expected: &quot;${lhs}&quot; &lt; &quot;${rhs}&quot;`);
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-export const throwsError = (opFn, message, ...args) =&gt; {
-    if (message)
-        message = &quot; for &quot; + message;
-
</del><ins>+export const throws = (func, type, message, ...args) =&gt; {
</ins><span class="cx">     try {
</span><del>-        opFn(...args);
</del><ins>+        func(...args);
</ins><span class="cx">     } catch (e) {
</span><del>-        if (e instanceof Error)
</del><ins>+        if (e instanceof type &amp;&amp; e.message === message)
</ins><span class="cx">             return;
</span><del>-        throw new Error(`Expected an Error${message}, got ${e}`);
</del><ins>+        throw new Error(`Expected to throw a ${type.name} with message &quot;${message}&quot;, got ${e.name} with message &quot;${e.message}&quot;`);
</ins><span class="cx">     }
</span><del>-    throw new Error(`Expected to throw an Error${message}`);
</del><ins>+    throw new Error(`Expected to throw a ${type.name} with message &quot;${message}&quot;`);
</ins><span class="cx"> };
</span><del>-
-export const throwsRangeError = (opFn, message, ...args) =&gt; {
-    if (message)
-        message = &quot; for &quot; + message;
-
-    try {
-        opFn(...args);
-    } catch (e) {
-        if (e instanceof RangeError)
-            return;
-        throw new Error(`Expected a RangeError${message}, got ${e}`);
-    }
-    throw new Error(`Expected to throw a RangeError${message}`);
-};
</del></span></pre></div>
<a id="trunkJSTestswasmjsapitest_basic_apijs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/wasm/js-api/test_basic_api.js (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/wasm/js-api/test_basic_api.js        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/JSTests/wasm/js-api/test_basic_api.js        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -1,37 +1,55 @@
</span><del>-if (WebAssembly === undefined)
-    throw new Error(&quot;Couldn't find WebAssembly global object&quot;);
</del><ins>+import * as assert from '../assert.js';
+import * as utilities from '../utilities.js';
</ins><span class="cx"> 
</span><del>-const functionProperties = [&quot;validate&quot;, &quot;compile&quot;];
-const constructorProperties = [&quot;Module&quot;, &quot;Instance&quot;, &quot;Memory&quot;, &quot;Table&quot;, &quot;CompileError&quot;];
</del><ins>+const checkOwnPropertyDescriptor = (obj, prop, expect) =&gt; {
+    const descriptor = Object.getOwnPropertyDescriptor(obj, prop);
+    assert.eq(typeof descriptor.value, expect.typeofvalue);
+    assert.eq(descriptor.writable, expect.writable);
+    assert.eq(descriptor.configurable, expect.configurable);
+    assert.eq(descriptor.enumerable, expect.enumerable);
+};
</ins><span class="cx"> 
</span><del>-for (const f of functionProperties)
-    if (WebAssembly[f] === undefined)
-        throw new Error(`Couldn't find WebAssembly function property &quot;${f}&quot;`);
</del><ins>+const functionProperties = {
+    &quot;validate&quot;: { length: 1 },
+    &quot;compile&quot;:  { length: 1 },
+};
+const constructorProperties = {
+    &quot;Module&quot;:       { typeofvalue: &quot;function&quot;, writable: true, configurable: true, enumerable: false, length: 1, isError: false },
+    &quot;Instance&quot;:     { typeofvalue: &quot;function&quot;, writable: true, configurable: true, enumerable: false, length: 1, isError: false },
+    &quot;Memory&quot;:       { typeofvalue: &quot;function&quot;, writable: true, configurable: true, enumerable: false, length: 1, isError: false },
+    &quot;Table&quot;:        { typeofvalue: &quot;function&quot;, writable: true, configurable: true, enumerable: false, length: 1, isError: false },
+    &quot;CompileError&quot;: { typeofvalue: &quot;function&quot;, writable: true, configurable: true, enumerable: false, length: 1, isError: true  },
+    &quot;RuntimeError&quot;: { typeofvalue: &quot;function&quot;, writable: true, configurable: true, enumerable: false, length: 1, isError: true  },
+};
</ins><span class="cx"> 
</span><del>-for (const c of constructorProperties)
-    if (WebAssembly[c] === undefined)
-        throw new Error(`Couldn't find WebAssembly constructor property &quot;${c}&quot;`);
</del><span class="cx"> 
</span><del>-// FIXME https://bugs.webkit.org/show_bug.cgi?id=159775 Implement and test these APIs further. For now they just throw.
</del><ins>+assert.notUndef(WebAssembly);
+checkOwnPropertyDescriptor(utilities.global, &quot;WebAssembly&quot;, { typeofvalue: &quot;object&quot;, writable: true, configurable: true, enumerable: false });
+assert.eq(String(WebAssembly), &quot;[object WebAssembly]&quot;);
+assert.isUndef(WebAssembly.length);
</ins><span class="cx"> 
</span><del>-for (const f of functionProperties) {
-    try {
-        WebAssembly[f]();
-    } catch (e) {
-        if (e instanceof Error)
-            continue;
-        throw new Error(`Expected WebAssembly.${f}() to throw an Error, got ${e}`);
-    }
-    throw new Error(`Expected WebAssembly.${f}() to throw an Error`);
</del><ins>+for (const f in functionProperties) {
+    assert.notUndef(WebAssembly[f]);
+    assert.eq(WebAssembly[f].name, f);
+    assert.eq(WebAssembly[f].length, functionProperties[f].length);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-for (const c of constructorProperties) {
-    try {
-        let v = new WebAssembly[c]();
-    } catch (e) {
-        if (e instanceof Error)
-            continue;
-        throw new Error(`Expected new WebAssembly.${f}() to throw an Error, got ${e}`);
-    }
-    throw new Error(`Expected new WebAssembly.${f}() to throw an Error`);
</del><ins>+for (const c in constructorProperties) {
+    assert.notUndef(WebAssembly[c]);
+    assert.eq(WebAssembly[c].name, c);
+    assert.eq(WebAssembly[c].length, constructorProperties[c].length);
+    checkOwnPropertyDescriptor(WebAssembly, c, constructorProperties[c]);
+    // Check the constructor's prototype.
+    checkOwnPropertyDescriptor(WebAssembly[c], &quot;prototype&quot;, { typeofvalue: &quot;object&quot;, writable: false, configurable: false, enumerable: false });
+    assert.eq(String(WebAssembly[c].prototype), `[object WebAssembly.${c}.prototype]`);
+    assert.throws(() =&gt; WebAssembly[c](), TypeError, `calling WebAssembly.${c} constructor without new is invalid`);
</ins><span class="cx"> }
</span><ins>+
+// FIXME Implement and test these APIs further. For now they just throw. https://bugs.webkit.org/show_bug.cgi?id=159775
+
+for (const f in functionProperties) {
+    assert.throws(() =&gt; WebAssembly[f](), Error, `WebAssembly doesn't yet implement the ${f} function property`);
+}
+
+for (const c in constructorProperties)
+    assert.throws(() =&gt; new WebAssembly[c](), Error, `WebAssembly doesn't yet implement the ${c} constructor property`);
</ins></span></pre></div>
<a id="trunkJSTestswasmselftesttest_BuilderJSONjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/wasm/self-test/test_BuilderJSON.js (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/wasm/self-test/test_BuilderJSON.js        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/JSTests/wasm/self-test/test_BuilderJSON.js        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -1,9 +1,9 @@
</span><span class="cx"> import * as assert from '../assert.js';
</span><span class="cx"> import Builder from '../Builder.js';
</span><span class="cx"> 
</span><del>-const assertOpThrows = (opFn, message = &quot;&quot;) =&gt; {
</del><ins>+const assertOpThrows = (opFn, message) =&gt; {
</ins><span class="cx">     let f = (new Builder()).Code().Function();
</span><del>-    assert.throwsError(opFn, message, f);
</del><ins>+    assert.throws(opFn, Error, message, f);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> (function EmptyModule() {
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx"> })();
</span><span class="cx"> 
</span><span class="cx"> (function CheckedOpcodeArgumentsTooMany() {
</span><del>-    assertOpThrows(f =&gt; f.Nop(&quot;uh-oh!&quot;));
</del><ins>+    assertOpThrows(f =&gt; f.Nop(&quot;uh-oh!&quot;), `&quot;nop&quot; expects 0 immediates, got 1`);
</ins><span class="cx"> })();
</span><span class="cx"> 
</span><span class="cx"> (function UncheckedOpcodeArgumentsTooMany() {
</span><span class="lines">@@ -201,7 +201,7 @@
</span><span class="cx"> })();
</span><span class="cx"> 
</span><span class="cx"> (function CheckedOpcodeArgumentsNotEnough() {
</span><del>-    assertOpThrows(f =&gt; f.I32Const());
</del><ins>+    assertOpThrows(f =&gt; f.I32Const(), `&quot;i32.const&quot; expects 1 immediates, got 0`);
</ins><span class="cx"> })();
</span><span class="cx"> 
</span><span class="cx"> (function UncheckedOpcodeArgumentsNotEnough() {
</span><span class="lines">@@ -221,7 +221,7 @@
</span><span class="cx"> 
</span><span class="cx"> (function CallInvalid() {
</span><span class="cx">     for (let c of [-1, 0x100000000, &quot;0&quot;, {}, Infinity, -Infinity, NaN, -NaN, null])
</span><del>-        assertOpThrows(f =&gt; f.Call(c), c);
</del><ins>+        assertOpThrows(f =&gt; f.Call(c), `Invalid value on call: got &quot;${c}&quot;, expected i32`);
</ins><span class="cx"> })();
</span><span class="cx"> 
</span><span class="cx"> (function I32ConstValid() {
</span><span class="lines">@@ -237,7 +237,7 @@
</span><span class="cx"> 
</span><span class="cx"> (function I32ConstInvalid() {
</span><span class="cx">     for (let c of [-1, 0x100000000, 0.1, -0.1, &quot;0&quot;, {}, Infinity, null])
</span><del>-        assertOpThrows(f =&gt; f.I32Const(c), c);
</del><ins>+        assertOpThrows(f =&gt; f.I32Const(c), `Invalid value on i32.const: got &quot;${c}&quot;, expected i32`);
</ins><span class="cx"> })();
</span><span class="cx"> 
</span><span class="cx"> // FIXME: test i64. https://bugs.webkit.org/show_bug.cgi?id=163420
</span><span class="lines">@@ -255,7 +255,7 @@
</span><span class="cx"> 
</span><span class="cx"> (function F32ConstInvalid() {
</span><span class="cx">     for (let c of [&quot;0&quot;, {}, Infinity, -Infinity, NaN, -NaN, null])
</span><del>-        assertOpThrows(f =&gt; f.F32Const(c), c);
</del><ins>+        assertOpThrows(f =&gt; f.F32Const(c), `Invalid value on f32.const: got &quot;${c}&quot;, expected f32`);
</ins><span class="cx"> })();
</span><span class="cx"> 
</span><span class="cx"> (function F64ConstValid() {
</span><span class="lines">@@ -271,7 +271,7 @@
</span><span class="cx"> 
</span><span class="cx"> (function F64ConstInvalid() {
</span><span class="cx">     for (let c of [&quot;0&quot;, {}, Infinity, -Infinity, NaN, -NaN, null])
</span><del>-        assertOpThrows(f =&gt; f.F64Const(c), c);
</del><ins>+        assertOpThrows(f =&gt; f.F64Const(c), `Invalid value on f64.const: got &quot;${c}&quot;, expected f64`);
</ins><span class="cx"> })();
</span><span class="cx"> 
</span><span class="cx"> (function CallOneFromStack() {
</span></span></pre></div>
<a id="trunkJSTestswasmselftesttest_LowLevelBinary_varintjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/wasm/self-test/test_LowLevelBinary_varint.js (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/wasm/self-test/test_LowLevelBinary_varint.js        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/JSTests/wasm/self-test/test_LowLevelBinary_varint.js        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -20,7 +20,7 @@
</span><span class="cx">     let b = new LowLevelBinary();
</span><span class="cx">     for (let j = 0; j &lt; i; ++j)
</span><span class="cx">         b.uint8(0x80);
</span><del>-    assert.throwsRangeError(() =&gt; b.getVarint(0));
</del><ins>+    assert.throws(() =&gt; b.getVarint(0), RangeError, `[${i}, ${i+1}) is out of buffer range [0, ${i})`);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> let b = new LowLevelBinary();
</span><span class="lines">@@ -27,4 +27,4 @@
</span><span class="cx"> for (let i = 0; i &lt; LLB.varBitsMax; ++i)
</span><span class="cx">     b.uint8(0x80);
</span><span class="cx"> b.uint8(0x00);
</span><del>-assert.throwsRangeError(() =&gt; b.getVarint(0));
</del><ins>+assert.throws(() =&gt; b.getVarint(0), RangeError, `Shifting too much at 6`);
</ins></span></pre></div>
<a id="trunkJSTestswasmselftesttest_LowLevelBinary_varuintjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/wasm/self-test/test_LowLevelBinary_varuint.js (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/wasm/self-test/test_LowLevelBinary_varuint.js        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/JSTests/wasm/self-test/test_LowLevelBinary_varuint.js        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -19,7 +19,7 @@
</span><span class="cx">     let b = new LowLevelBinary();
</span><span class="cx">     for (let j = 0; j &lt; i; ++j)
</span><span class="cx">         b.uint8(0x80);
</span><del>-    assert.throwsRangeError(() =&gt; b.getVaruint(0));
</del><ins>+    assert.throws(() =&gt; b.getVarint(0), RangeError, `[${i}, ${i+1}) is out of buffer range [0, ${i})`);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> let b = new LowLevelBinary();
</span><span class="lines">@@ -26,4 +26,4 @@
</span><span class="cx"> for (let i = 0; i &lt; LLB.varBitsMax; ++i)
</span><span class="cx">     b.uint8(0x80);
</span><span class="cx"> b.uint8(0x00);
</span><del>-assert.throwsRangeError(() =&gt; b.getVaruint(0));
</del><ins>+assert.throws(() =&gt; b.getVarint(0), RangeError, `Shifting too much at 6`);
</ins></span></pre></div>
<a id="trunkJSTestswasmutilitiesjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/wasm/utilities.js (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/wasm/utilities.js        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/JSTests/wasm/utilities.js        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -30,6 +30,13 @@
</span><span class="cx">         : (typeof importScripts === &quot;function&quot; ? &quot;worker&quot;
</span><span class="cx">            : &quot;shell&quot;)));
</span><span class="cx"> 
</span><ins>+let _global = (typeof global !== 'object' || !global || global.Math !== Math || global.Array !== Array)
+    ? ((typeof self !== 'undefined') ? self
+       : (typeof window !== 'undefined') ? window
+       : (typeof global !== 'undefined') ? global
+       : Function('return this')())
+    : global;
+
</ins><span class="cx"> const _eval = x =&gt; eval.call(null, x);
</span><span class="cx"> 
</span><span class="cx"> const _read = filename =&gt; {
</span><span class="lines">@@ -60,4 +67,4 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Use underscore names to avoid clashing with builtin names.
</span><del>-export { _eval as eval, _read as read, _load as load, _json as json };
</del><ins>+export { _eval as eval, _read as read, _load as load, _json as json, _global as global };
</ins></span></pre></div>
<a id="trunkJSTestswasmwasmjson"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/wasm/wasm.json (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/wasm/wasm.json        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/JSTests/wasm/wasm.json        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -58,8 +58,8 @@
</span><span class="cx">         &quot;end&quot;:                 { &quot;category&quot;: &quot;control&quot;,    &quot;value&quot;:  15, &quot;return&quot;: [],           &quot;parameter&quot;: [],                       &quot;immediate&quot;: [],                                                                                         &quot;description&quot;: &quot;end a block, loop, or if&quot; },
</span><span class="cx">         &quot;i32.const&quot;:           { &quot;category&quot;: &quot;special&quot;,    &quot;value&quot;:  16, &quot;return&quot;: [&quot;i32&quot;],      &quot;parameter&quot;: [],                       &quot;immediate&quot;: [{&quot;name&quot;: &quot;value&quot;,          &quot;type&quot;: &quot;varint32&quot;}],                                           &quot;description&quot;: &quot;a constant value interpreted as i32&quot; },
</span><span class="cx">         &quot;i64.const&quot;:           { &quot;category&quot;: &quot;special&quot;,    &quot;value&quot;:  17, &quot;return&quot;: [&quot;i64&quot;],      &quot;parameter&quot;: [],                       &quot;immediate&quot;: [{&quot;name&quot;: &quot;value&quot;,          &quot;type&quot;: &quot;varint64&quot;}],                                           &quot;description&quot;: &quot;a constant value interpreted as i64&quot; },
</span><del>-        &quot;f64.const&quot;:           { &quot;category&quot;: &quot;special&quot;,    &quot;value&quot;:  18, &quot;return&quot;: [&quot;f32&quot;],      &quot;parameter&quot;: [],                       &quot;immediate&quot;: [{&quot;name&quot;: &quot;value&quot;,          &quot;type&quot;: &quot;uint64&quot;}],                                             &quot;description&quot;: &quot;a constant value interpreted as f64&quot; },
-        &quot;f32.const&quot;:           { &quot;category&quot;: &quot;special&quot;,    &quot;value&quot;:  19, &quot;return&quot;: [&quot;f64&quot;],      &quot;parameter&quot;: [],                       &quot;immediate&quot;: [{&quot;name&quot;: &quot;value&quot;,          &quot;type&quot;: &quot;uint32&quot;}],                                             &quot;description&quot;: &quot;a constant value interpreted as f32&quot; },
</del><ins>+        &quot;f64.const&quot;:           { &quot;category&quot;: &quot;special&quot;,    &quot;value&quot;:  18, &quot;return&quot;: [&quot;f64&quot;],      &quot;parameter&quot;: [],                       &quot;immediate&quot;: [{&quot;name&quot;: &quot;value&quot;,          &quot;type&quot;: &quot;uint64&quot;}],                                             &quot;description&quot;: &quot;a constant value interpreted as f64&quot; },
+        &quot;f32.const&quot;:           { &quot;category&quot;: &quot;special&quot;,    &quot;value&quot;:  19, &quot;return&quot;: [&quot;f32&quot;],      &quot;parameter&quot;: [],                       &quot;immediate&quot;: [{&quot;name&quot;: &quot;value&quot;,          &quot;type&quot;: &quot;uint32&quot;}],                                             &quot;description&quot;: &quot;a constant value interpreted as f32&quot; },
</ins><span class="cx">         &quot;get_local&quot;:           { &quot;category&quot;: &quot;special&quot;,    &quot;value&quot;:  20, &quot;return&quot;: [&quot;local&quot;],    &quot;parameter&quot;: [],                       &quot;immediate&quot;: [{&quot;name&quot;: &quot;local_index&quot;,    &quot;type&quot;: &quot;varuint32&quot;}],                                          &quot;description&quot;: &quot;read a local variable or parameter&quot; },
</span><span class="cx">         &quot;set_local&quot;:           { &quot;category&quot;: &quot;special&quot;,    &quot;value&quot;:  21, &quot;return&quot;: [],           &quot;parameter&quot;: [&quot;local&quot;],                &quot;immediate&quot;: [{&quot;name&quot;: &quot;local_index&quot;,    &quot;type&quot;: &quot;varuint32&quot;}],                                          &quot;description&quot;: &quot;write a local variable or parameter&quot; },
</span><span class="cx">         &quot;tee_local&quot;:           { &quot;category&quot;: &quot;special&quot;,    &quot;value&quot;:  25, &quot;return&quot;: [&quot;prev&quot;],     &quot;parameter&quot;: [&quot;any&quot;],                  &quot;immediate&quot;: [{&quot;name&quot;: &quot;local_index&quot;,    &quot;type&quot;: &quot;varuint32&quot;}],                                          &quot;description&quot;: &quot;write a local variable or parameter and return the same value&quot; },
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/CMakeLists.txt (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/CMakeLists.txt        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/Source/JavaScriptCore/CMakeLists.txt        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -868,6 +868,25 @@
</span><span class="cx">     wasm/WASMPlan.cpp
</span><span class="cx">     wasm/WebAssemblyObject.cpp
</span><span class="cx"> 
</span><ins>+    wasm/js/JSWebAssemblyCompileError.cpp
+    wasm/js/JSWebAssemblyInstance.cpp
+    wasm/js/JSWebAssemblyMemory.cpp
+    wasm/js/JSWebAssemblyModule.cpp
+    wasm/js/JSWebAssemblyRuntimeError.cpp
+    wasm/js/JSWebAssemblyTable.cpp
+    wasm/js/WebAssemblyCompileErrorConstructor.cpp
+    wasm/js/WebAssemblyCompileErrorPrototype.cpp
+    wasm/js/WebAssemblyInstanceConstructor.cpp
+    wasm/js/WebAssemblyInstancePrototype.cpp
+    wasm/js/WebAssemblyMemoryConstructor.cpp
+    wasm/js/WebAssemblyMemoryPrototype.cpp
+    wasm/js/WebAssemblyModuleConstructor.cpp
+    wasm/js/WebAssemblyModulePrototype.cpp
+    wasm/js/WebAssemblyRuntimeErrorConstructor.cpp
+    wasm/js/WebAssemblyRuntimeErrorPrototype.cpp
+    wasm/js/WebAssemblyTableConstructor.cpp
+    wasm/js/WebAssemblyTablePrototype.cpp
+
</ins><span class="cx">     yarr/RegularExpression.cpp
</span><span class="cx">     yarr/YarrCanonicalizeUCS2.cpp
</span><span class="cx">     yarr/YarrInterpreter.cpp
</span><span class="lines">@@ -918,6 +937,19 @@
</span><span class="cx">     runtime/StringPrototype.cpp
</span><span class="cx">     runtime/SymbolConstructor.cpp
</span><span class="cx">     runtime/SymbolPrototype.cpp
</span><ins>+
+    wasm/js/WebAssemblyCompileErrorConstructor.cpp
+    wasm/js/WebAssemblyCompileErrorPrototype.cpp
+    wasm/js/WebAssemblyInstanceConstructor.cpp
+    wasm/js/WebAssemblyInstancePrototype.cpp
+    wasm/js/WebAssemblyMemoryConstructor.cpp
+    wasm/js/WebAssemblyMemoryPrototype.cpp
+    wasm/js/WebAssemblyModuleConstructor.cpp
+    wasm/js/WebAssemblyModulePrototype.cpp
+    wasm/js/WebAssemblyRuntimeErrorConstructor.cpp
+    wasm/js/WebAssemblyRuntimeErrorPrototype.cpp
+    wasm/js/WebAssemblyTableConstructor.cpp
+    wasm/js/WebAssemblyTablePrototype.cpp
</ins><span class="cx"> )
</span><span class="cx"> 
</span><span class="cx"> set(JavaScriptCore_LIBRARIES
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -1,3 +1,192 @@
</span><ins>+2016-10-19  JF Bastien  &lt;jfbastien@apple.com&gt;
+
+        JavaScript WebAssembly API: baby steps
+
+         - Expand WebAssembly constructors into their own files. This requires a lot of
+           boilerplate, as well as adding the .lut.h files. All of the
+           JSWebAssembly*.{h,cpp}, as well as Constructor and Prototype files, are
+           currently the same between the 4 specified WebAssembly constructors. It'll be
+           easy to implement individual functions on constructed objects as per the
+           spec, and have each of these files diverge. The error constructors are also
+           similar, except that their instance derives from ErrorInstance.
+         - Use constructor macro when initializing the global object.
+         - Dramatically improve testing of the WebAssembly API by checking for
+           properties specified in the spec [*].
+         - Clean up assert.js' exception testing.
+         - Fix a copy-paste bug in wasm.json: floating-point const return values were
+           swapped.
+
+        [*] https://github.com/WebAssembly/design/blob/master/JS.md
+
+        Implement more of the JavaScript WebAssembly API
+        https://bugs.webkit.org/show_bug.cgi?id=163571
+
+        Reviewed by Keith Miller.
+
+        * CMakeLists.txt: add .lut.h generation
+        * DerivedSources.make: ditto
+        * JavaScriptCore.xcodeproj/project.pbxproj: add .lut.h generation and all the new files
+        * runtime/JSGlobalObject.cpp:
+        (JSC::JSGlobalObject::init): use macro to list all constructors
+        * wasm/WebAssemblyObject.cpp: unboilerplate, all constructors into their own files
+        * wasm/WebAssemblyObject.h: ditto
+        * wasm/js/JSWebAssemblyCompileError.cpp: Added.
+        (JSC::JSWebAssemblyCompileError::create):
+        (JSC::JSWebAssemblyCompileError::createStructure):
+        (JSC::JSWebAssemblyCompileError::JSWebAssemblyCompileError):
+        (JSC::JSWebAssemblyCompileError::finishCreation):
+        (JSC::JSWebAssemblyCompileError::destroy):
+        (JSC::JSWebAssemblyCompileError::visitChildren):
+        * wasm/js/JSWebAssemblyCompileError.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        * wasm/js/JSWebAssemblyInstance.cpp: Added.
+        (JSC::JSWebAssemblyInstance::create):
+        (JSC::JSWebAssemblyInstance::createStructure):
+        (JSC::JSWebAssemblyInstance::JSWebAssemblyInstance):
+        (JSC::JSWebAssemblyInstance::finishCreation):
+        (JSC::JSWebAssemblyInstance::destroy):
+        (JSC::JSWebAssemblyInstance::visitChildren):
+        * wasm/js/JSWebAssemblyInstance.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        * wasm/js/JSWebAssemblyMemory.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::JSWebAssemblyMemory::create):
+        (JSC::JSWebAssemblyMemory::createStructure):
+        (JSC::JSWebAssemblyMemory::JSWebAssemblyMemory):
+        (JSC::JSWebAssemblyMemory::finishCreation):
+        (JSC::JSWebAssemblyMemory::destroy):
+        (JSC::JSWebAssemblyMemory::visitChildren):
+        * wasm/js/JSWebAssemblyMemory.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        * wasm/js/JSWebAssemblyModule.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::JSWebAssemblyModule::create):
+        (JSC::JSWebAssemblyModule::createStructure):
+        (JSC::JSWebAssemblyModule::JSWebAssemblyModule):
+        (JSC::JSWebAssemblyModule::finishCreation):
+        (JSC::JSWebAssemblyModule::destroy):
+        (JSC::JSWebAssemblyModule::visitChildren):
+        * wasm/js/JSWebAssemblyModule.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        * wasm/js/JSWebAssemblyRuntimeError.cpp: Added.
+        (JSC::JSWebAssemblyRuntimeError::create):
+        (JSC::JSWebAssemblyRuntimeError::createStructure):
+        (JSC::JSWebAssemblyRuntimeError::JSWebAssemblyRuntimeError):
+        (JSC::JSWebAssemblyRuntimeError::finishCreation):
+        (JSC::JSWebAssemblyRuntimeError::destroy):
+        (JSC::JSWebAssemblyRuntimeError::visitChildren):
+        * wasm/js/JSWebAssemblyRuntimeError.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        * wasm/js/JSWebAssemblyTable.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::JSWebAssemblyTable::create):
+        (JSC::JSWebAssemblyTable::createStructure):
+        (JSC::JSWebAssemblyTable::JSWebAssemblyTable):
+        (JSC::JSWebAssemblyTable::finishCreation):
+        (JSC::JSWebAssemblyTable::destroy):
+        (JSC::JSWebAssemblyTable::visitChildren):
+        * wasm/js/JSWebAssemblyTable.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        * wasm/js/WebAssemblyCompileErrorConstructor.cpp: Added.
+        (JSC::constructJSWebAssemblyCompileError):
+        (JSC::callJSWebAssemblyCompileError):
+        (JSC::WebAssemblyCompileErrorConstructor::create):
+        (JSC::WebAssemblyCompileErrorConstructor::createStructure):
+        (JSC::WebAssemblyCompileErrorConstructor::finishCreation):
+        (JSC::WebAssemblyCompileErrorConstructor::WebAssemblyCompileErrorConstructor):
+        (JSC::WebAssemblyCompileErrorConstructor::getConstructData):
+        (JSC::WebAssemblyCompileErrorConstructor::getCallData):
+        (JSC::WebAssemblyCompileErrorConstructor::visitChildren):
+        * wasm/js/WebAssemblyCompileErrorConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::WebAssemblyCompileErrorConstructor::CompileErrorStructure):
+        * wasm/js/WebAssemblyCompileErrorPrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::WebAssemblyCompileErrorPrototype::create):
+        (JSC::WebAssemblyCompileErrorPrototype::createStructure):
+        (JSC::WebAssemblyCompileErrorPrototype::finishCreation):
+        (JSC::WebAssemblyCompileErrorPrototype::WebAssemblyCompileErrorPrototype):
+        * wasm/js/WebAssemblyCompileErrorPrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        * wasm/js/WebAssemblyInstanceConstructor.cpp: Added.
+        (JSC::constructJSWebAssemblyInstance):
+        (JSC::callJSWebAssemblyInstance):
+        (JSC::WebAssemblyInstanceConstructor::create):
+        (JSC::WebAssemblyInstanceConstructor::createStructure):
+        (JSC::WebAssemblyInstanceConstructor::finishCreation):
+        (JSC::WebAssemblyInstanceConstructor::WebAssemblyInstanceConstructor):
+        (JSC::WebAssemblyInstanceConstructor::getConstructData):
+        (JSC::WebAssemblyInstanceConstructor::getCallData):
+        (JSC::WebAssemblyInstanceConstructor::visitChildren):
+        * wasm/js/WebAssemblyInstanceConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::WebAssemblyInstanceConstructor::InstanceStructure):
+        * wasm/js/WebAssemblyInstancePrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::WebAssemblyInstancePrototype::create):
+        (JSC::WebAssemblyInstancePrototype::createStructure):
+        (JSC::WebAssemblyInstancePrototype::finishCreation):
+        (JSC::WebAssemblyInstancePrototype::WebAssemblyInstancePrototype):
+        * wasm/js/WebAssemblyInstancePrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        * wasm/js/WebAssemblyMemoryConstructor.cpp: Added.
+        (JSC::constructJSWebAssemblyMemory):
+        (JSC::callJSWebAssemblyMemory):
+        (JSC::WebAssemblyMemoryConstructor::create):
+        (JSC::WebAssemblyMemoryConstructor::createStructure):
+        (JSC::WebAssemblyMemoryConstructor::finishCreation):
+        (JSC::WebAssemblyMemoryConstructor::WebAssemblyMemoryConstructor):
+        (JSC::WebAssemblyMemoryConstructor::getConstructData):
+        (JSC::WebAssemblyMemoryConstructor::getCallData):
+        (JSC::WebAssemblyMemoryConstructor::visitChildren):
+        * wasm/js/WebAssemblyMemoryConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::WebAssemblyMemoryConstructor::MemoryStructure):
+        * wasm/js/WebAssemblyMemoryPrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::WebAssemblyMemoryPrototype::create):
+        (JSC::WebAssemblyMemoryPrototype::createStructure):
+        (JSC::WebAssemblyMemoryPrototype::finishCreation):
+        (JSC::WebAssemblyMemoryPrototype::WebAssemblyMemoryPrototype):
+        * wasm/js/WebAssemblyMemoryPrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        * wasm/js/WebAssemblyModuleConstructor.cpp: Added.
+        (JSC::constructJSWebAssemblyModule):
+        (JSC::callJSWebAssemblyModule):
+        (JSC::WebAssemblyModuleConstructor::create):
+        (JSC::WebAssemblyModuleConstructor::createStructure):
+        (JSC::WebAssemblyModuleConstructor::finishCreation):
+        (JSC::WebAssemblyModuleConstructor::WebAssemblyModuleConstructor):
+        (JSC::WebAssemblyModuleConstructor::getConstructData):
+        (JSC::WebAssemblyModuleConstructor::getCallData):
+        (JSC::WebAssemblyModuleConstructor::visitChildren):
+        * wasm/js/WebAssemblyModuleConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::WebAssemblyModuleConstructor::ModuleStructure):
+        * wasm/js/WebAssemblyModulePrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::WebAssemblyModulePrototype::create):
+        (JSC::WebAssemblyModulePrototype::createStructure):
+        (JSC::WebAssemblyModulePrototype::finishCreation):
+        (JSC::WebAssemblyModulePrototype::WebAssemblyModulePrototype):
+        * wasm/js/WebAssemblyModulePrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        * wasm/js/WebAssemblyRuntimeErrorConstructor.cpp: Added.
+        (JSC::constructJSWebAssemblyRuntimeError):
+        (JSC::callJSWebAssemblyRuntimeError):
+        (JSC::WebAssemblyRuntimeErrorConstructor::create):
+        (JSC::WebAssemblyRuntimeErrorConstructor::createStructure):
+        (JSC::WebAssemblyRuntimeErrorConstructor::finishCreation):
+        (JSC::WebAssemblyRuntimeErrorConstructor::WebAssemblyRuntimeErrorConstructor):
+        (JSC::WebAssemblyRuntimeErrorConstructor::getConstructData):
+        (JSC::WebAssemblyRuntimeErrorConstructor::getCallData):
+        (JSC::WebAssemblyRuntimeErrorConstructor::visitChildren):
+        * wasm/js/WebAssemblyRuntimeErrorConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::WebAssemblyRuntimeErrorConstructor::RuntimeErrorStructure):
+        * wasm/js/WebAssemblyRuntimeErrorPrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::WebAssemblyRuntimeErrorPrototype::create):
+        (JSC::WebAssemblyRuntimeErrorPrototype::createStructure):
+        (JSC::WebAssemblyRuntimeErrorPrototype::finishCreation):
+        (JSC::WebAssemblyRuntimeErrorPrototype::WebAssemblyRuntimeErrorPrototype):
+        * wasm/js/WebAssemblyRuntimeErrorPrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        * wasm/js/WebAssemblyTableConstructor.cpp: Added.
+        (JSC::constructJSWebAssemblyTable):
+        (JSC::callJSWebAssemblyTable):
+        (JSC::WebAssemblyTableConstructor::create):
+        (JSC::WebAssemblyTableConstructor::createStructure):
+        (JSC::WebAssemblyTableConstructor::finishCreation):
+        (JSC::WebAssemblyTableConstructor::WebAssemblyTableConstructor):
+        (JSC::WebAssemblyTableConstructor::getConstructData):
+        (JSC::WebAssemblyTableConstructor::getCallData):
+        (JSC::WebAssemblyTableConstructor::visitChildren):
+        * wasm/js/WebAssemblyTableConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::WebAssemblyTableConstructor::TableStructure):
+        * wasm/js/WebAssemblyTablePrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+        (JSC::WebAssemblyTablePrototype::create):
+        (JSC::WebAssemblyTablePrototype::createStructure):
+        (JSC::WebAssemblyTablePrototype::finishCreation):
+        (JSC::WebAssemblyTablePrototype::WebAssemblyTablePrototype):
+        * wasm/js/WebAssemblyTablePrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyObject.h.
+
</ins><span class="cx"> 2016-10-19  Caitlin Potter  &lt;caitp@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [JSC] forbid &quot;use strict&quot; directive in generator functions with non-simple parameters
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/DerivedSources.make (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/DerivedSources.make        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/Source/JavaScriptCore/DerivedSources.make        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -28,9 +28,10 @@
</span><span class="cx">     $(JavaScriptCore) \
</span><span class="cx">     $(JavaScriptCore)/parser \
</span><span class="cx">     $(JavaScriptCore)/runtime \
</span><del>-        $(JavaScriptCore)/interpreter \
-        $(JavaScriptCore)/jit \
-        $(JavaScriptCore)/builtins \
</del><ins>+    $(JavaScriptCore)/interpreter \
+    $(JavaScriptCore)/jit \
+    $(JavaScriptCore)/builtins \
+    $(JavaScriptCore)/wasm/js \
</ins><span class="cx"> #
</span><span class="cx"> 
</span><span class="cx"> PYTHON = python
</span><span class="lines">@@ -159,6 +160,18 @@
</span><span class="cx">     StringPrototype.lut.h \
</span><span class="cx">     SymbolConstructor.lut.h \
</span><span class="cx">     SymbolPrototype.lut.h \
</span><ins>+    WebAssemblyCompileErrorConstructor.lut.h \
+    WebAssemblyCompileErrorPrototype.lut.h \
+    WebAssemblyInstanceConstructor.lut.h \
+    WebAssemblyInstancePrototype.lut.h \
+    WebAssemblyMemoryConstructor.lut.h \
+    WebAssemblyMemoryPrototype.lut.h \
+    WebAssemblyModuleConstructor.lut.h \
+    WebAssemblyModulePrototype.lut.h \
+    WebAssemblyRuntimeErrorConstructor.lut.h \
+    WebAssemblyRuntimeErrorPrototype.lut.h \
+    WebAssemblyTableConstructor.lut.h \
+    WebAssemblyTablePrototype.lut.h \
</ins><span class="cx"> #
</span><span class="cx"> 
</span><span class="cx"> $(OBJECT_LUT_HEADERS): %.lut.h : %.cpp $(JavaScriptCore)/create_hash_table
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -1881,6 +1881,54 @@
</span><span class="cx">                 A8A4748E151A8306004123FF /* libWTF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A8A4748D151A8306004123FF /* libWTF.a */; };
</span><span class="cx">                 AD2FCB881DAEBF3C00B3E736 /* WebAssemblyObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCB861DAEBF3700B3E736 /* WebAssemblyObject.cpp */; };
</span><span class="cx">                 AD2FCB891DAEBF3F00B3E736 /* WebAssemblyObject.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCB871DAEBF3700B3E736 /* WebAssemblyObject.h */; };
</span><ins>+                AD2FCBE21DB58DAD00B3E736 /* JSWebAssemblyCompileError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBA61DB58DA400B3E736 /* JSWebAssemblyCompileError.cpp */; };
+                AD2FCBE31DB58DAD00B3E736 /* JSWebAssemblyCompileError.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBA71DB58DA400B3E736 /* JSWebAssemblyCompileError.h */; };
+                AD2FCBE41DB58DAD00B3E736 /* JSWebAssemblyInstance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBA81DB58DA400B3E736 /* JSWebAssemblyInstance.cpp */; };
+                AD2FCBE51DB58DAD00B3E736 /* JSWebAssemblyInstance.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBA91DB58DA400B3E736 /* JSWebAssemblyInstance.h */; };
+                AD2FCBE61DB58DAD00B3E736 /* JSWebAssemblyMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBAA1DB58DA400B3E736 /* JSWebAssemblyMemory.cpp */; };
+                AD2FCBE71DB58DAD00B3E736 /* JSWebAssemblyMemory.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBAB1DB58DA400B3E736 /* JSWebAssemblyMemory.h */; };
+                AD2FCBE81DB58DAD00B3E736 /* JSWebAssemblyRuntimeError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBAC1DB58DA400B3E736 /* JSWebAssemblyRuntimeError.cpp */; };
+                AD2FCBE91DB58DAD00B3E736 /* JSWebAssemblyRuntimeError.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBAD1DB58DA400B3E736 /* JSWebAssemblyRuntimeError.h */; };
+                AD2FCBEA1DB58DAD00B3E736 /* JSWebAssemblyTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBAE1DB58DA400B3E736 /* JSWebAssemblyTable.cpp */; };
+                AD2FCBEB1DB58DAD00B3E736 /* JSWebAssemblyTable.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBAF1DB58DA400B3E736 /* JSWebAssemblyTable.h */; };
+                AD2FCBEC1DB58DAD00B3E736 /* WebAssemblyCompileErrorConstructor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBB01DB58DA400B3E736 /* WebAssemblyCompileErrorConstructor.cpp */; };
+                AD2FCBED1DB58DAD00B3E736 /* WebAssemblyCompileErrorConstructor.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBB11DB58DA400B3E736 /* WebAssemblyCompileErrorConstructor.h */; };
+                AD2FCBEE1DB58DAD00B3E736 /* WebAssemblyCompileErrorPrototype.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBB21DB58DA400B3E736 /* WebAssemblyCompileErrorPrototype.cpp */; };
+                AD2FCBEF1DB58DAD00B3E736 /* WebAssemblyCompileErrorPrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBB31DB58DA400B3E736 /* WebAssemblyCompileErrorPrototype.h */; };
+                AD2FCBF01DB58DAD00B3E736 /* WebAssemblyInstanceConstructor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBB41DB58DA400B3E736 /* WebAssemblyInstanceConstructor.cpp */; };
+                AD2FCBF11DB58DAD00B3E736 /* WebAssemblyInstanceConstructor.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBB51DB58DA400B3E736 /* WebAssemblyInstanceConstructor.h */; };
+                AD2FCBF21DB58DAD00B3E736 /* WebAssemblyInstancePrototype.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBB61DB58DA400B3E736 /* WebAssemblyInstancePrototype.cpp */; };
+                AD2FCBF31DB58DAD00B3E736 /* WebAssemblyInstancePrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBB71DB58DA400B3E736 /* WebAssemblyInstancePrototype.h */; };
+                AD2FCBF41DB58DAD00B3E736 /* WebAssemblyMemoryConstructor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBB81DB58DA400B3E736 /* WebAssemblyMemoryConstructor.cpp */; };
+                AD2FCBF51DB58DAD00B3E736 /* WebAssemblyMemoryConstructor.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBB91DB58DA400B3E736 /* WebAssemblyMemoryConstructor.h */; };
+                AD2FCBF61DB58DAD00B3E736 /* WebAssemblyMemoryPrototype.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBBA1DB58DA400B3E736 /* WebAssemblyMemoryPrototype.cpp */; };
+                AD2FCBF71DB58DAD00B3E736 /* WebAssemblyMemoryPrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBBB1DB58DA400B3E736 /* WebAssemblyMemoryPrototype.h */; };
+                AD2FCBF81DB58DAD00B3E736 /* WebAssemblyRuntimeErrorConstructor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBBC1DB58DA400B3E736 /* WebAssemblyRuntimeErrorConstructor.cpp */; };
+                AD2FCBF91DB58DAD00B3E736 /* WebAssemblyRuntimeErrorConstructor.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBBD1DB58DA400B3E736 /* WebAssemblyRuntimeErrorConstructor.h */; };
+                AD2FCBFA1DB58DAD00B3E736 /* WebAssemblyRuntimeErrorPrototype.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBBE1DB58DA400B3E736 /* WebAssemblyRuntimeErrorPrototype.cpp */; };
+                AD2FCBFB1DB58DAD00B3E736 /* WebAssemblyRuntimeErrorPrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBBF1DB58DA400B3E736 /* WebAssemblyRuntimeErrorPrototype.h */; };
+                AD2FCBFC1DB58DAD00B3E736 /* WebAssemblyTableConstructor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBC01DB58DA400B3E736 /* WebAssemblyTableConstructor.cpp */; };
+                AD2FCBFD1DB58DAD00B3E736 /* WebAssemblyTableConstructor.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBC11DB58DA400B3E736 /* WebAssemblyTableConstructor.h */; };
+                AD2FCBFE1DB58DAD00B3E736 /* WebAssemblyTablePrototype.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCBC21DB58DA400B3E736 /* WebAssemblyTablePrototype.cpp */; };
+                AD2FCBFF1DB58DAD00B3E736 /* WebAssemblyTablePrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBC31DB58DA400B3E736 /* WebAssemblyTablePrototype.h */; };
+                AD2FCC001DB58DAD00B3E736 /* WebAssemblyModuleConstructor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCB981DB585A600B3E736 /* WebAssemblyModuleConstructor.cpp */; };
+                AD2FCC011DB58DAD00B3E736 /* WebAssemblyModuleConstructor.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCB991DB585A600B3E736 /* WebAssemblyModuleConstructor.h */; };
+                AD2FCC021DB58DAD00B3E736 /* WebAssemblyModulePrototype.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCB9A1DB585A600B3E736 /* WebAssemblyModulePrototype.cpp */; };
+                AD2FCC031DB58DAD00B3E736 /* WebAssemblyModulePrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCB9B1DB585A600B3E736 /* WebAssemblyModulePrototype.h */; };
+                AD2FCC041DB58DAD00B3E736 /* JSWebAssemblyModule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD2FCB8C1DB5844000B3E736 /* JSWebAssemblyModule.cpp */; };
+                AD2FCC051DB58DAD00B3E736 /* JSWebAssemblyModule.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCB8D1DB5844000B3E736 /* JSWebAssemblyModule.h */; };
+                AD2FCC161DB59CB200B3E736 /* WebAssemblyCompileErrorConstructor.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCC0A1DB59C5900B3E736 /* WebAssemblyCompileErrorConstructor.lut.h */; };
+                AD2FCC171DB59CB200B3E736 /* WebAssemblyCompileErrorPrototype.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCC0B1DB59C5900B3E736 /* WebAssemblyCompileErrorPrototype.lut.h */; };
+                AD2FCC181DB59CB200B3E736 /* WebAssemblyInstanceConstructor.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCC0C1DB59C5900B3E736 /* WebAssemblyInstanceConstructor.lut.h */; };
+                AD2FCC191DB59CB200B3E736 /* WebAssemblyInstancePrototype.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCC0D1DB59C5900B3E736 /* WebAssemblyInstancePrototype.lut.h */; };
+                AD2FCC1A1DB59CB200B3E736 /* WebAssemblyMemoryConstructor.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCC0E1DB59C5900B3E736 /* WebAssemblyMemoryConstructor.lut.h */; };
+                AD2FCC1B1DB59CB200B3E736 /* WebAssemblyMemoryPrototype.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCC0F1DB59C5900B3E736 /* WebAssemblyMemoryPrototype.lut.h */; };
+                AD2FCC1C1DB59CB200B3E736 /* WebAssemblyModuleConstructor.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCC101DB59C5900B3E736 /* WebAssemblyModuleConstructor.lut.h */; };
+                AD2FCC1D1DB59CB200B3E736 /* WebAssemblyModulePrototype.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCC111DB59C5900B3E736 /* WebAssemblyModulePrototype.lut.h */; };
+                AD2FCC1E1DB59CB200B3E736 /* WebAssemblyRuntimeErrorConstructor.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCC121DB59C5900B3E736 /* WebAssemblyRuntimeErrorConstructor.lut.h */; };
+                AD2FCC1F1DB59CB200B3E736 /* WebAssemblyRuntimeErrorPrototype.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCC131DB59C5900B3E736 /* WebAssemblyRuntimeErrorPrototype.lut.h */; };
+                AD2FCC201DB59CB200B3E736 /* WebAssemblyTableConstructor.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCC141DB59C5900B3E736 /* WebAssemblyTableConstructor.lut.h */; };
+                AD2FCC211DB59CB200B3E736 /* WebAssemblyTablePrototype.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCC151DB59C5900B3E736 /* WebAssemblyTablePrototype.lut.h */; };
</ins><span class="cx">                 AD86A93E1AA4D88D002FE77F /* WeakGCMapInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = AD86A93D1AA4D87C002FE77F /* WeakGCMapInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 ADDB1F6318D77DBE009B58A8 /* OpaqueRootSet.h in Headers */ = {isa = PBXBuildFile; fileRef = ADDB1F6218D77DB7009B58A8 /* OpaqueRootSet.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 ADE39FFF16DD144B0003CD4A /* PropertyTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD1CF06816DCAB2D00B97123 /* PropertyTable.cpp */; };
</span><span class="lines">@@ -4213,6 +4261,54 @@
</span><span class="cx">                 AD1CF06816DCAB2D00B97123 /* PropertyTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PropertyTable.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 AD2FCB861DAEBF3700B3E736 /* WebAssemblyObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAssemblyObject.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 AD2FCB871DAEBF3700B3E736 /* WebAssemblyObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyObject.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                AD2FCB8C1DB5844000B3E736 /* JSWebAssemblyModule.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebAssemblyModule.cpp; path = js/JSWebAssemblyModule.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCB8D1DB5844000B3E736 /* JSWebAssemblyModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebAssemblyModule.h; path = js/JSWebAssemblyModule.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCB981DB585A600B3E736 /* WebAssemblyModuleConstructor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyModuleConstructor.cpp; path = js/WebAssemblyModuleConstructor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCB991DB585A600B3E736 /* WebAssemblyModuleConstructor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyModuleConstructor.h; path = js/WebAssemblyModuleConstructor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCB9A1DB585A600B3E736 /* WebAssemblyModulePrototype.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyModulePrototype.cpp; path = js/WebAssemblyModulePrototype.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCB9B1DB585A600B3E736 /* WebAssemblyModulePrototype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyModulePrototype.h; path = js/WebAssemblyModulePrototype.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBA61DB58DA400B3E736 /* JSWebAssemblyCompileError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebAssemblyCompileError.cpp; path = js/JSWebAssemblyCompileError.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBA71DB58DA400B3E736 /* JSWebAssemblyCompileError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebAssemblyCompileError.h; path = js/JSWebAssemblyCompileError.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBA81DB58DA400B3E736 /* JSWebAssemblyInstance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebAssemblyInstance.cpp; path = js/JSWebAssemblyInstance.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBA91DB58DA400B3E736 /* JSWebAssemblyInstance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebAssemblyInstance.h; path = js/JSWebAssemblyInstance.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBAA1DB58DA400B3E736 /* JSWebAssemblyMemory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebAssemblyMemory.cpp; path = js/JSWebAssemblyMemory.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBAB1DB58DA400B3E736 /* JSWebAssemblyMemory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebAssemblyMemory.h; path = js/JSWebAssemblyMemory.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBAC1DB58DA400B3E736 /* JSWebAssemblyRuntimeError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebAssemblyRuntimeError.cpp; path = js/JSWebAssemblyRuntimeError.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBAD1DB58DA400B3E736 /* JSWebAssemblyRuntimeError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebAssemblyRuntimeError.h; path = js/JSWebAssemblyRuntimeError.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBAE1DB58DA400B3E736 /* JSWebAssemblyTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebAssemblyTable.cpp; path = js/JSWebAssemblyTable.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBAF1DB58DA400B3E736 /* JSWebAssemblyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebAssemblyTable.h; path = js/JSWebAssemblyTable.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBB01DB58DA400B3E736 /* WebAssemblyCompileErrorConstructor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyCompileErrorConstructor.cpp; path = js/WebAssemblyCompileErrorConstructor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBB11DB58DA400B3E736 /* WebAssemblyCompileErrorConstructor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyCompileErrorConstructor.h; path = js/WebAssemblyCompileErrorConstructor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBB21DB58DA400B3E736 /* WebAssemblyCompileErrorPrototype.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyCompileErrorPrototype.cpp; path = js/WebAssemblyCompileErrorPrototype.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBB31DB58DA400B3E736 /* WebAssemblyCompileErrorPrototype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyCompileErrorPrototype.h; path = js/WebAssemblyCompileErrorPrototype.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBB41DB58DA400B3E736 /* WebAssemblyInstanceConstructor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyInstanceConstructor.cpp; path = js/WebAssemblyInstanceConstructor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBB51DB58DA400B3E736 /* WebAssemblyInstanceConstructor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyInstanceConstructor.h; path = js/WebAssemblyInstanceConstructor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBB61DB58DA400B3E736 /* WebAssemblyInstancePrototype.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyInstancePrototype.cpp; path = js/WebAssemblyInstancePrototype.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBB71DB58DA400B3E736 /* WebAssemblyInstancePrototype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyInstancePrototype.h; path = js/WebAssemblyInstancePrototype.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBB81DB58DA400B3E736 /* WebAssemblyMemoryConstructor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyMemoryConstructor.cpp; path = js/WebAssemblyMemoryConstructor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBB91DB58DA400B3E736 /* WebAssemblyMemoryConstructor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyMemoryConstructor.h; path = js/WebAssemblyMemoryConstructor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBBA1DB58DA400B3E736 /* WebAssemblyMemoryPrototype.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyMemoryPrototype.cpp; path = js/WebAssemblyMemoryPrototype.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBBB1DB58DA400B3E736 /* WebAssemblyMemoryPrototype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyMemoryPrototype.h; path = js/WebAssemblyMemoryPrototype.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBBC1DB58DA400B3E736 /* WebAssemblyRuntimeErrorConstructor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyRuntimeErrorConstructor.cpp; path = js/WebAssemblyRuntimeErrorConstructor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBBD1DB58DA400B3E736 /* WebAssemblyRuntimeErrorConstructor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyRuntimeErrorConstructor.h; path = js/WebAssemblyRuntimeErrorConstructor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBBE1DB58DA400B3E736 /* WebAssemblyRuntimeErrorPrototype.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyRuntimeErrorPrototype.cpp; path = js/WebAssemblyRuntimeErrorPrototype.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBBF1DB58DA400B3E736 /* WebAssemblyRuntimeErrorPrototype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyRuntimeErrorPrototype.h; path = js/WebAssemblyRuntimeErrorPrototype.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBC01DB58DA400B3E736 /* WebAssemblyTableConstructor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyTableConstructor.cpp; path = js/WebAssemblyTableConstructor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBC11DB58DA400B3E736 /* WebAssemblyTableConstructor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyTableConstructor.h; path = js/WebAssemblyTableConstructor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBC21DB58DA400B3E736 /* WebAssemblyTablePrototype.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyTablePrototype.cpp; path = js/WebAssemblyTablePrototype.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCBC31DB58DA400B3E736 /* WebAssemblyTablePrototype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyTablePrototype.h; path = js/WebAssemblyTablePrototype.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCC0A1DB59C5900B3E736 /* WebAssemblyCompileErrorConstructor.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyCompileErrorConstructor.lut.h; sourceTree = SOURCE_ROOT; };
+                AD2FCC0B1DB59C5900B3E736 /* WebAssemblyCompileErrorPrototype.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyCompileErrorPrototype.lut.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCC0C1DB59C5900B3E736 /* WebAssemblyInstanceConstructor.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyInstanceConstructor.lut.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCC0D1DB59C5900B3E736 /* WebAssemblyInstancePrototype.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyInstancePrototype.lut.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCC0E1DB59C5900B3E736 /* WebAssemblyMemoryConstructor.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyMemoryConstructor.lut.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCC0F1DB59C5900B3E736 /* WebAssemblyMemoryPrototype.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyMemoryPrototype.lut.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCC101DB59C5900B3E736 /* WebAssemblyModuleConstructor.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyModuleConstructor.lut.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCC111DB59C5900B3E736 /* WebAssemblyModulePrototype.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyModulePrototype.lut.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCC121DB59C5900B3E736 /* WebAssemblyRuntimeErrorConstructor.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyRuntimeErrorConstructor.lut.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCC131DB59C5900B3E736 /* WebAssemblyRuntimeErrorPrototype.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyRuntimeErrorPrototype.lut.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCC141DB59C5900B3E736 /* WebAssemblyTableConstructor.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyTableConstructor.lut.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                AD2FCC151DB59C5900B3E736 /* WebAssemblyTablePrototype.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAssemblyTablePrototype.lut.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 AD86A93D1AA4D87C002FE77F /* WeakGCMapInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeakGCMapInlines.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 ADDB1F6218D77DB7009B58A8 /* OpaqueRootSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpaqueRootSet.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 B59F89371891AD3300D5CCDC /* UnlinkedInstructionStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnlinkedInstructionStream.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -5610,6 +5706,18 @@
</span><span class="cx">                 650FDF8D09D0FCA700769E54 /* Derived Sources */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                AD2FCC0A1DB59C5900B3E736 /* WebAssemblyCompileErrorConstructor.lut.h */,
+                                AD2FCC0B1DB59C5900B3E736 /* WebAssemblyCompileErrorPrototype.lut.h */,
+                                AD2FCC0C1DB59C5900B3E736 /* WebAssemblyInstanceConstructor.lut.h */,
+                                AD2FCC0D1DB59C5900B3E736 /* WebAssemblyInstancePrototype.lut.h */,
+                                AD2FCC0E1DB59C5900B3E736 /* WebAssemblyMemoryConstructor.lut.h */,
+                                AD2FCC0F1DB59C5900B3E736 /* WebAssemblyMemoryPrototype.lut.h */,
+                                AD2FCC101DB59C5900B3E736 /* WebAssemblyModuleConstructor.lut.h */,
+                                AD2FCC111DB59C5900B3E736 /* WebAssemblyModulePrototype.lut.h */,
+                                AD2FCC121DB59C5900B3E736 /* WebAssemblyRuntimeErrorConstructor.lut.h */,
+                                AD2FCC131DB59C5900B3E736 /* WebAssemblyRuntimeErrorPrototype.lut.h */,
+                                AD2FCC141DB59C5900B3E736 /* WebAssemblyTableConstructor.lut.h */,
+                                AD2FCC151DB59C5900B3E736 /* WebAssemblyTablePrototype.lut.h */,
</ins><span class="cx">                                 0F6183321C45F35C0072450B /* AirOpcode.h */,
</span><span class="cx">                                 0F6183341C45F3B60072450B /* AirOpcodeGenerated.h */,
</span><span class="cx">                                 0F6183351C45F3B60072450B /* AirOpcodeUtils.h */,
</span><span class="lines">@@ -5695,6 +5803,7 @@
</span><span class="cx">                 7B98D1331B60CD1E0023B1A4 /* wasm */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                AD2FCB8A1DB5840000B3E736 /* js */,
</ins><span class="cx">                                 AD2FCB861DAEBF3700B3E736 /* WebAssemblyObject.cpp */,
</span><span class="cx">                                 AD2FCB871DAEBF3700B3E736 /* WebAssemblyObject.h */,
</span><span class="cx">                                 7B98D1341B60CD5A0023B1A4 /* JSWASMModule.cpp */,
</span><span class="lines">@@ -7200,6 +7309,49 @@
</span><span class="cx">                         path = builtins;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="cx">                 };
</span><ins>+                AD2FCB8A1DB5840000B3E736 /* js */ = {
+                        isa = PBXGroup;
+                        children = (
+                                AD2FCBA61DB58DA400B3E736 /* JSWebAssemblyCompileError.cpp */,
+                                AD2FCBA71DB58DA400B3E736 /* JSWebAssemblyCompileError.h */,
+                                AD2FCBA81DB58DA400B3E736 /* JSWebAssemblyInstance.cpp */,
+                                AD2FCBA91DB58DA400B3E736 /* JSWebAssemblyInstance.h */,
+                                AD2FCBAA1DB58DA400B3E736 /* JSWebAssemblyMemory.cpp */,
+                                AD2FCBAB1DB58DA400B3E736 /* JSWebAssemblyMemory.h */,
+                                AD2FCBAC1DB58DA400B3E736 /* JSWebAssemblyRuntimeError.cpp */,
+                                AD2FCBAD1DB58DA400B3E736 /* JSWebAssemblyRuntimeError.h */,
+                                AD2FCBAE1DB58DA400B3E736 /* JSWebAssemblyTable.cpp */,
+                                AD2FCBAF1DB58DA400B3E736 /* JSWebAssemblyTable.h */,
+                                AD2FCBB01DB58DA400B3E736 /* WebAssemblyCompileErrorConstructor.cpp */,
+                                AD2FCBB11DB58DA400B3E736 /* WebAssemblyCompileErrorConstructor.h */,
+                                AD2FCBB21DB58DA400B3E736 /* WebAssemblyCompileErrorPrototype.cpp */,
+                                AD2FCBB31DB58DA400B3E736 /* WebAssemblyCompileErrorPrototype.h */,
+                                AD2FCBB41DB58DA400B3E736 /* WebAssemblyInstanceConstructor.cpp */,
+                                AD2FCBB51DB58DA400B3E736 /* WebAssemblyInstanceConstructor.h */,
+                                AD2FCBB61DB58DA400B3E736 /* WebAssemblyInstancePrototype.cpp */,
+                                AD2FCBB71DB58DA400B3E736 /* WebAssemblyInstancePrototype.h */,
+                                AD2FCBB81DB58DA400B3E736 /* WebAssemblyMemoryConstructor.cpp */,
+                                AD2FCBB91DB58DA400B3E736 /* WebAssemblyMemoryConstructor.h */,
+                                AD2FCBBA1DB58DA400B3E736 /* WebAssemblyMemoryPrototype.cpp */,
+                                AD2FCBBB1DB58DA400B3E736 /* WebAssemblyMemoryPrototype.h */,
+                                AD2FCBBC1DB58DA400B3E736 /* WebAssemblyRuntimeErrorConstructor.cpp */,
+                                AD2FCBBD1DB58DA400B3E736 /* WebAssemblyRuntimeErrorConstructor.h */,
+                                AD2FCBBE1DB58DA400B3E736 /* WebAssemblyRuntimeErrorPrototype.cpp */,
+                                AD2FCBBF1DB58DA400B3E736 /* WebAssemblyRuntimeErrorPrototype.h */,
+                                AD2FCBC01DB58DA400B3E736 /* WebAssemblyTableConstructor.cpp */,
+                                AD2FCBC11DB58DA400B3E736 /* WebAssemblyTableConstructor.h */,
+                                AD2FCBC21DB58DA400B3E736 /* WebAssemblyTablePrototype.cpp */,
+                                AD2FCBC31DB58DA400B3E736 /* WebAssemblyTablePrototype.h */,
+                                AD2FCB981DB585A600B3E736 /* WebAssemblyModuleConstructor.cpp */,
+                                AD2FCB991DB585A600B3E736 /* WebAssemblyModuleConstructor.h */,
+                                AD2FCB9A1DB585A600B3E736 /* WebAssemblyModulePrototype.cpp */,
+                                AD2FCB9B1DB585A600B3E736 /* WebAssemblyModulePrototype.h */,
+                                AD2FCB8C1DB5844000B3E736 /* JSWebAssemblyModule.cpp */,
+                                AD2FCB8D1DB5844000B3E736 /* JSWebAssemblyModule.h */,
+                        );
+                        name = js;
+                        sourceTree = &quot;&lt;group&gt;&quot;;
+                };
</ins><span class="cx">                 C4703CC1192844A40013FBEA /* codegen */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="lines">@@ -7313,6 +7465,7 @@
</span><span class="cx">                                 BC18C3E50E16F5CD00B34460 /* APICast.h in Headers */,
</span><span class="cx">                                 FE3A06BE1C11041200390FDD /* JITLeftShiftGenerator.h in Headers */,
</span><span class="cx">                                 BCF605140E203EF800B9A64D /* ArgList.h in Headers */,
</span><ins>+                                AD2FCC1E1DB59CB200B3E736 /* WebAssemblyRuntimeErrorConstructor.lut.h in Headers */,
</ins><span class="cx">                                 DCEE22091CEB9895000C2396 /* DFGBackwardsCFG.h in Headers */,
</span><span class="cx">                                 0FE050141AA9091100D33B33 /* ArgumentsMode.h in Headers */,
</span><span class="cx">                                 0F6B1CB91861244C00845D97 /* ArityCheckMode.h in Headers */,
</span><span class="lines">@@ -7321,6 +7474,7 @@
</span><span class="cx">                                 86ADD1450FDDEA980006EEC2 /* ARMv7Assembler.h in Headers */,
</span><span class="cx">                                 65C0285D1717966800351E35 /* ARMv7DOpcode.h in Headers */,
</span><span class="cx">                                 0F8335B81639C1EA001443B5 /* ArrayAllocationProfile.h in Headers */,
</span><ins>+                                AD2FCC1B1DB59CB200B3E736 /* WebAssemblyMemoryPrototype.lut.h in Headers */,
</ins><span class="cx">                                 A7A8AF3517ADB5F3005AB174 /* ArrayBuffer.h in Headers */,
</span><span class="cx">                                 0FFC99D5184EE318009C10AB /* ArrayBufferNeuteringWatchpoint.h in Headers */,
</span><span class="cx">                                 A7A8AF3717ADB5F3005AB174 /* ArrayBufferView.h in Headers */,
</span><span class="lines">@@ -7415,6 +7569,7 @@
</span><span class="cx">                                 412952791D2CF6BC00E78B89 /* builtins_generate_wrapper_header.py in Headers */,
</span><span class="cx">                                 4129527A1D2CF6BC00E78B89 /* builtins_generate_wrapper_implementation.py in Headers */,
</span><span class="cx">                                 412952771D2CF6BC00E78B89 /* builtins_generate_internals_wrapper_header.py in Headers */,
</span><ins>+                                AD2FCC011DB58DAD00B3E736 /* WebAssemblyModuleConstructor.h in Headers */,
</ins><span class="cx">                                 FE3A06A61C10B72D00390FDD /* JITBitOrGenerator.h in Headers */,
</span><span class="cx">                                 99DA00A41BD5993100F4575C /* builtins_model.py in Headers */,
</span><span class="cx">                                 99DA00A51BD5993100F4575C /* builtins_templates.py in Headers */,
</span><span class="lines">@@ -7423,6 +7578,7 @@
</span><span class="cx">                                 DCFDFBD91D1F5D9B00FE3D72 /* B3BottomProvider.h in Headers */,
</span><span class="cx">                                 0FB7F39715ED8E4600F167B2 /* Butterfly.h in Headers */,
</span><span class="cx">                                 0FB7F39815ED8E4600F167B2 /* ButterflyInlines.h in Headers */,
</span><ins>+                                AD2FCBF11DB58DAD00B3E736 /* WebAssemblyInstanceConstructor.h in Headers */,
</ins><span class="cx">                                 C2FCAE1117A9C24E0034C735 /* BytecodeBasicBlock.h in Headers */,
</span><span class="cx">                                 0F21C27F14BEAA8200ADC64B /* BytecodeConventions.h in Headers */,
</span><span class="cx">                                 969A07230ED1CE3300F1F681 /* BytecodeGenerator.h in Headers */,
</span><span class="lines">@@ -7453,6 +7609,7 @@
</span><span class="cx">                                 BC6AAAE50E1F426500AD87D8 /* ClassInfo.h in Headers */,
</span><span class="cx">                                 0F6B8AD91C4EDDA200969052 /* B3DuplicateTails.h in Headers */,
</span><span class="cx">                                 0FE050261AA9095600D33B33 /* ClonedArguments.h in Headers */,
</span><ins>+                                AD2FCBFD1DB58DAD00B3E736 /* WebAssemblyTableConstructor.h in Headers */,
</ins><span class="cx">                                 969A07970ED1D3AE00F1F681 /* CodeBlock.h in Headers */,
</span><span class="cx">                                 0F8F94411667633200D61971 /* CodeBlockHash.h in Headers */,
</span><span class="cx">                                 0FC97F34182020D7002C9B26 /* CodeBlockJettisoningWatchpoint.h in Headers */,
</span><span class="lines">@@ -7529,6 +7686,7 @@
</span><span class="cx">                                 0F66E16B14DF3F1600B7B2E4 /* DFGAdjacencyList.h in Headers */,
</span><span class="cx">                                 0FFB921816D02EB20055A5DB /* DFGAllocator.h in Headers */,
</span><span class="cx">                                 0F1E3A461534CBAF000F9456 /* DFGArgumentPosition.h in Headers */,
</span><ins>+                                AD2FCBF51DB58DAD00B3E736 /* WebAssemblyMemoryConstructor.h in Headers */,
</ins><span class="cx">                                 0F7C5FB81D888A0C0044F5E2 /* MarkedBlockInlines.h in Headers */,
</span><span class="cx">                                 0F2DD8121AB3D8BE00BBB8E8 /* DFGArgumentsEliminationPhase.h in Headers */,
</span><span class="cx">                                 0F2DD8141AB3D8BE00BBB8E8 /* DFGArgumentsUtilities.h in Headers */,
</span><span class="lines">@@ -7604,6 +7762,7 @@
</span><span class="cx">                                 0F2BDC16151C5D4F00CD8910 /* DFGFixupPhase.h in Headers */,
</span><span class="cx">                                 0F9D339717FFC4E60073C2BC /* DFGFlushedAt.h in Headers */,
</span><span class="cx">                                 A7D89CF817A0B8CC00773AD8 /* DFGFlushFormat.h in Headers */,
</span><ins>+                                AD2FCC161DB59CB200B3E736 /* WebAssemblyCompileErrorConstructor.lut.h in Headers */,
</ins><span class="cx">                                 0F2DD8151AB3D8BE00BBB8E8 /* DFGForAllKills.h in Headers */,
</span><span class="cx">                                 79A090801D768465008B889B /* HashMapImpl.h in Headers */,
</span><span class="cx">                                 0F69CC89193AC60A0045759E /* DFGFrozenValue.h in Headers */,
</span><span class="lines">@@ -7641,6 +7800,7 @@
</span><span class="cx">                                 0F2E892D16D02BAF009E4FD2 /* DFGMinifiedID.h in Headers */,
</span><span class="cx">                                 0F2BDC461522802000CD8910 /* DFGMinifiedNode.h in Headers */,
</span><span class="cx">                                 0F8F14361ADF090100ED792C /* DFGMovHintRemovalPhase.h in Headers */,
</span><ins>+                                AD2FCBEF1DB58DAD00B3E736 /* WebAssemblyCompileErrorPrototype.h in Headers */,
</ins><span class="cx">                                 0FF2CD5C1B61A4F8004955A8 /* DFGMultiGetByOffsetData.h in Headers */,
</span><span class="cx">                                 A737810E1799EA2E00817533 /* DFGNaturalLoops.h in Headers */,
</span><span class="cx">                                 86ECA3EA132DEF1C002B2AD7 /* DFGNode.h in Headers */,
</span><span class="lines">@@ -7692,6 +7852,7 @@
</span><span class="cx">                                 86ECA3FA132DF25A002B2AD7 /* DFGScoreBoard.h in Headers */,
</span><span class="cx">                                 72AAF7CE1D0D31B3005E60BE /* JSCustomGetterSetterFunction.h in Headers */,
</span><span class="cx">                                 0F1E3A67153A21E2000F9456 /* DFGSilentRegisterSavePlan.h in Headers */,
</span><ins>+                                AD2FCC051DB58DAD00B3E736 /* JSWebAssemblyModule.h in Headers */,
</ins><span class="cx">                                 0FFB921D16D02F300055A5DB /* DFGSlowPathGenerator.h in Headers */,
</span><span class="cx">                                 5341FC721DAC343C00E7E4D7 /* B3WasmBoundsCheckValue.h in Headers */,
</span><span class="cx">                                 86EC9DD31328DF82002B2AD7 /* DFGSpeculativeJIT.h in Headers */,
</span><span class="lines">@@ -7705,6 +7866,7 @@
</span><span class="cx">                                 0FC20CB61852E2C600C9E954 /* DFGStrengthReductionPhase.h in Headers */,
</span><span class="cx">                                 0F63947815DCE34B006A597C /* DFGStructureAbstractValue.h in Headers */,
</span><span class="cx">                                 0F50AF3C193E8B3900674EE8 /* DFGStructureClobberState.h in Headers */,
</span><ins>+                                AD2FCC1A1DB59CB200B3E736 /* WebAssemblyMemoryConstructor.lut.h in Headers */,
</ins><span class="cx">                                 FE99B2491C24C3D300C82159 /* JITNegGenerator.h in Headers */,
</span><span class="cx">                                 0F79085619A290B200F6310C /* DFGStructureRegistrationPhase.h in Headers */,
</span><span class="cx">                                 0F2FCCFF18A60070001A27F8 /* DFGThreadData.h in Headers */,
</span><span class="lines">@@ -7735,6 +7897,7 @@
</span><span class="cx">                                 0FE050181AA9091100D33B33 /* DirectArguments.h in Headers */,
</span><span class="cx">                                 0FE050161AA9091100D33B33 /* DirectArgumentsOffset.h in Headers */,
</span><span class="cx">                                 0FF42731158EBD54004CB9FF /* Disassembler.h in Headers */,
</span><ins>+                                AD2FCBE71DB58DAD00B3E736 /* JSWebAssemblyMemory.h in Headers */,
</ins><span class="cx">                                 A70447EE17A0BD7000F5898E /* DumpContext.h in Headers */,
</span><span class="cx">                                 2A83638618D7D0EE0000EBCC /* EdenGCActivityCallback.h in Headers */,
</span><span class="cx">                                 99E45A2418A1B2590026D88F /* EmptyInputCursor.h in Headers */,
</span><span class="lines">@@ -7760,6 +7923,7 @@
</span><span class="cx">                                 DE26E9031CB5DD0500D2BE82 /* BuiltinExecutableCreator.h in Headers */,
</span><span class="cx">                                 0FB105861675481200F8AB6E /* ExitKind.h in Headers */,
</span><span class="cx">                                 0F0B83AB14BCF5BB00885B4F /* ExpressionRangeInfo.h in Headers */,
</span><ins>+                                AD2FCBFB1DB58DAD00B3E736 /* WebAssemblyRuntimeErrorPrototype.h in Headers */,
</ins><span class="cx">                                 0F4DE1CF1C4C1B54004D6C11 /* AirFixObviousSpills.h in Headers */,
</span><span class="cx">                                 A7A8AF3817ADB5F3005AB174 /* Float32Array.h in Headers */,
</span><span class="cx">                                 A7A8AF3917ADB5F3005AB174 /* Float64Array.h in Headers */,
</span><span class="lines">@@ -7773,6 +7937,7 @@
</span><span class="cx">                                 0FEA0A231709606900BB722C /* FTLCommonValues.h in Headers */,
</span><span class="cx">                                 0FEA0A0C170513DB00BB722C /* FTLCompile.h in Headers */,
</span><span class="cx">                                 0F235BD417178E1C00690C7F /* FTLExitArgument.h in Headers */,
</span><ins>+                                AD2FCBF91DB58DAD00B3E736 /* WebAssemblyRuntimeErrorConstructor.h in Headers */,
</ins><span class="cx">                                 0F338E0C1BF0276C0013C88F /* B3Compilation.h in Headers */,
</span><span class="cx">                                 0F235BD617178E1C00690C7F /* FTLExitArgumentForOperand.h in Headers */,
</span><span class="cx">                                 0F235BD717178E1C00690C7F /* FTLStackmapArgumentList.h in Headers */,
</span><span class="lines">@@ -7871,6 +8036,7 @@
</span><span class="cx">                                 0F9332A014CA7DCD0085F3C6 /* GetByIdStatus.h in Headers */,
</span><span class="cx">                                 0F0332C418B01763005F979A /* GetByIdVariant.h in Headers */,
</span><span class="cx">                                 7964656A1B952FF0003059EE /* GetPutInfo.h in Headers */,
</span><ins>+                                AD2FCC1C1DB59CB200B3E736 /* WebAssemblyModuleConstructor.lut.h in Headers */,
</ins><span class="cx">                                 0F24E54417EA9F5900ABB217 /* GPRInfo.h in Headers */,
</span><span class="cx">                                 142E3134134FF0A600AFADB5 /* Handle.h in Headers */,
</span><span class="cx">                                 C283190016FE4B7D00157BFD /* HandleBlock.h in Headers */,
</span><span class="lines">@@ -7887,6 +8053,7 @@
</span><span class="cx">                                 FE187A0D1C030D5C0038BBCA /* JITDivGenerator.h in Headers */,
</span><span class="cx">                                 2AD8932B17E3868F00668276 /* HeapIterationScope.h in Headers */,
</span><span class="cx">                                 A5339EC91BB4B4600054F005 /* HeapObserver.h in Headers */,
</span><ins>+                                AD2FCBEB1DB58DAD00B3E736 /* JSWebAssemblyTable.h in Headers */,
</ins><span class="cx">                                 2A6F462617E959CE00C45C98 /* HeapOperation.h in Headers */,
</span><span class="cx">                                 14F97447138C853E00DA1C67 /* HeapRootVisitor.h in Headers */,
</span><span class="cx">                                 C24D31E3161CD695002AA4DB /* HeapStatistics.h in Headers */,
</span><span class="lines">@@ -7978,6 +8145,7 @@
</span><span class="cx">                                 BC18C4140E16F5CD00B34460 /* JavaScriptCore.h in Headers */,
</span><span class="cx">                                 BC18C4150E16F5CD00B34460 /* JavaScriptCorePrefix.h in Headers */,
</span><span class="cx">                                 1429D9300ED22D7000B89619 /* JIT.h in Headers */,
</span><ins>+                                AD2FCBE91DB58DAD00B3E736 /* JSWebAssemblyRuntimeError.h in Headers */,
</ins><span class="cx">                                 86CCEFDE0F413F8900FD7F9E /* JITCode.h in Headers */,
</span><span class="cx">                                 0F0776BF14FF002B00102332 /* JITCompilationEffort.h in Headers */,
</span><span class="cx">                                 0FAF7EFE165BA91F000C8455 /* JITDisassembler.h in Headers */,
</span><span class="lines">@@ -7989,7 +8157,9 @@
</span><span class="cx">                                 0F766D3115AA8112008F363E /* JITStubRoutine.h in Headers */,
</span><span class="cx">                                 0F766D2C15A8CC3A008F363E /* JITStubRoutineSet.h in Headers */,
</span><span class="cx">                                 0F5EF91F16878F7D003E5C25 /* JITThunks.h in Headers */,
</span><ins>+                                AD2FCC211DB59CB200B3E736 /* WebAssemblyTablePrototype.lut.h in Headers */,
</ins><span class="cx">                                 0FC712E317CD8793008CC93C /* JITToDFGDeferredCompilationCallback.h in Headers */,
</span><ins>+                                AD2FCBE31DB58DAD00B3E736 /* JSWebAssemblyCompileError.h in Headers */,
</ins><span class="cx">                                 840480131021A1D9008E7F01 /* JSAPIValueWrapper.h in Headers */,
</span><span class="cx">                                 C2CF39C216E15A8100DD69BE /* JSAPIWrapperObject.h in Headers */,
</span><span class="cx">                                 BC18C4170E16F5CD00B34460 /* JSArray.h in Headers */,
</span><span class="lines">@@ -8020,6 +8190,7 @@
</span><span class="cx">                                 BC18C41E0E16F5CD00B34460 /* JSContextRef.h in Headers */,
</span><span class="cx">                                 A5EA70EE19F5B5C40098F5EC /* JSContextRefInspectorSupport.h in Headers */,
</span><span class="cx">                                 A5D2E665195E174000A518E7 /* JSContextRefInternal.h in Headers */,
</span><ins>+                                AD2FCC031DB58DAD00B3E736 /* WebAssemblyModulePrototype.h in Headers */,
</ins><span class="cx">                                 A5AB49DD1BEC8086007020FB /* PerGlobalObjectWrapperWorld.h in Headers */,
</span><span class="cx">                                 148CD1D8108CF902008163C6 /* JSContextRefPrivate.h in Headers */,
</span><span class="cx">                                 A72028B81797601E0098028C /* JSCTestRunnerUtils.h in Headers */,
</span><span class="lines">@@ -8080,6 +8251,7 @@
</span><span class="cx">                                 7013CA8C1B491A9400CAE613 /* JSJob.h in Headers */,
</span><span class="cx">                                 BC18C4160E16F5CD00B34460 /* JSLexicalEnvironment.h in Headers */,
</span><span class="cx">                                 BC18C4230E16F5CD00B34460 /* JSLock.h in Headers */,
</span><ins>+                                AD2FCC191DB59CB200B3E736 /* WebAssemblyInstancePrototype.lut.h in Headers */,
</ins><span class="cx">                                 C25D709C16DE99F400FCA6BC /* JSManagedValue.h in Headers */,
</span><span class="cx">                                 2A4BB7F318A41179008A0FCD /* JSManagedValueInternal.h in Headers */,
</span><span class="cx">                                 A700874217CBE8EB00C3E643 /* JSMap.h in Headers */,
</span><span class="lines">@@ -8088,6 +8260,7 @@
</span><span class="cx">                                 9959E92D1BD17FA4001AA413 /* jsmin.py in Headers */,
</span><span class="cx">                                 E3D239C91B829C1C00BBEF67 /* JSModuleEnvironment.h in Headers */,
</span><span class="cx">                                 E318CBC11B8AEF5100A2929D /* JSModuleNamespaceObject.h in Headers */,
</span><ins>+                                AD2FCC171DB59CB200B3E736 /* WebAssemblyCompileErrorPrototype.lut.h in Headers */,
</ins><span class="cx">                                 E39DA4A71B7E8B7C0084F33A /* JSModuleRecord.h in Headers */,
</span><span class="cx">                                 E33E8D1D1B9013C300346B52 /* JSNativeStdFunction.h in Headers */,
</span><span class="cx">                                 BC18C4240E16F5CD00B34460 /* JSObject.h in Headers */,
</span><span class="lines">@@ -8106,6 +8279,7 @@
</span><span class="cx">                                 E322E5A31DA64439006E7709 /* DFGDOMJITPatchpointParams.h in Headers */,
</span><span class="cx">                                 E3EF88751B66DF23003F26CB /* JSPropertyNameIterator.h in Headers */,
</span><span class="cx">                                 862553D216136E1A009F17D0 /* JSProxy.h in Headers */,
</span><ins>+                                AD2FCC1F1DB59CB200B3E736 /* WebAssemblyRuntimeErrorPrototype.lut.h in Headers */,
</ins><span class="cx">                                 A552C3801ADDB8FE00139726 /* JSRemoteInspector.h in Headers */,
</span><span class="cx">                                 9928FF3C18AC4AEC00B8CF12 /* JSReplayInputs.h in Headers */,
</span><span class="cx">                                 BC18C4260E16F5CD00B34460 /* JSRetainPtr.h in Headers */,
</span><span class="lines">@@ -8127,6 +8301,7 @@
</span><span class="cx">                                 2600B5A7152BAAA70091EE5F /* JSStringJoiner.h in Headers */,
</span><span class="cx">                                 BC18C4280E16F5CD00B34460 /* JSStringRef.h in Headers */,
</span><span class="cx">                                 43AB26C61C1A535900D82AE6 /* B3MathExtras.h in Headers */,
</span><ins>+                                AD2FCBF31DB58DAD00B3E736 /* WebAssemblyInstancePrototype.h in Headers */,
</ins><span class="cx">                                 BC18C4290E16F5CD00B34460 /* JSStringRefCF.h in Headers */,
</span><span class="cx">                                 1A28D4A8177B71C80007FA3C /* JSStringRefPrivate.h in Headers */,
</span><span class="cx">                                 0F919D0D157EE0A2004A4E7D /* JSSymbolTableObject.h in Headers */,
</span><span class="lines">@@ -8269,6 +8444,7 @@
</span><span class="cx">                                 A77F1825164192C700640A47 /* ParserModes.h in Headers */,
</span><span class="cx">                                 E328C6C91DA432F900D255FD /* RegisterAtOffset.h in Headers */,
</span><span class="cx">                                 65303D641447B9E100D3F904 /* ParserTokens.h in Headers */,
</span><ins>+                                AD2FCC1D1DB59CB200B3E736 /* WebAssemblyModulePrototype.lut.h in Headers */,
</ins><span class="cx">                                 0FF9CE741B9CD6D0004EDCA6 /* PolymorphicAccess.h in Headers */,
</span><span class="cx">                                 0FE834181A6EF97B00D04847 /* PolymorphicCallStubRoutine.h in Headers */,
</span><span class="cx">                                 0F98206116BFE38300240D02 /* PreciseJumpTargets.h in Headers */,
</span><span class="lines">@@ -8345,6 +8521,7 @@
</span><span class="cx">                                 FE318FE01CAC982F00DFCC54 /* ECMAScriptSpecInternalFunctions.h in Headers */,
</span><span class="cx">                                 0FE050291AA9095600D33B33 /* ScopedArgumentsTable.h in Headers */,
</span><span class="cx">                                 0FE0502B1AA9095600D33B33 /* ScopeOffset.h in Headers */,
</span><ins>+                                AD2FCBF71DB58DAD00B3E736 /* WebAssemblyMemoryPrototype.h in Headers */,
</ins><span class="cx">                                 0F24E55217EE274900ABB217 /* ScratchRegisterAllocator.h in Headers */,
</span><span class="cx">                                 A5FD0068189AFE9C00633231 /* ScriptArguments.h in Headers */,
</span><span class="cx">                                 A503FA21188EFF6800110F14 /* ScriptBreakpoint.h in Headers */,
</span><span class="lines">@@ -8361,6 +8538,7 @@
</span><span class="cx">                                 A790DD6E182F499700588807 /* SetIteratorPrototype.h in Headers */,
</span><span class="cx">                                 A7299DA217D12848005F5FF9 /* SetPrototype.h in Headers */,
</span><span class="cx">                                 0FEE98411A8865B700754E93 /* SetupVarargsFrame.h in Headers */,
</span><ins>+                                AD2FCC181DB59CB200B3E736 /* WebAssemblyInstanceConstructor.lut.h in Headers */,
</ins><span class="cx">                                 86AE64AA135E5E1C00963012 /* SH4Assembler.h in Headers */,
</span><span class="cx">                                 0F2B670517B6B5AB00A7AE3F /* SimpleTypedArrayController.h in Headers */,
</span><span class="cx">                                 14BA78F113AAB88F005B7C2C /* SlotVisitor.h in Headers */,
</span><span class="lines">@@ -8413,10 +8591,12 @@
</span><span class="cx">                                 E32FF1EA1DA7571C00A8BF21 /* DOMJITSlowPathCalls.h in Headers */,
</span><span class="cx">                                 53FD04D41D7AB291003287D3 /* WASMCallingConvention.h in Headers */,
</span><span class="cx">                                 705B41B21A6E501E00716757 /* SymbolPrototype.h in Headers */,
</span><ins>+                                AD2FCC201DB59CB200B3E736 /* WebAssemblyTableConstructor.lut.h in Headers */,
</ins><span class="cx">                                 996B73281BDA08EF00331B84 /* SymbolPrototype.lut.h in Headers */,
</span><span class="cx">                                 BC18C46B0E16F5CD00B34460 /* SymbolTable.h in Headers */,
</span><span class="cx">                                 A784A26411D16622005776AC /* SyntaxChecker.h in Headers */,
</span><span class="cx">                                 70ECA6081AFDBEA200449739 /* TemplateRegistry.h in Headers */,
</span><ins>+                                AD2FCBED1DB58DAD00B3E736 /* WebAssemblyCompileErrorConstructor.h in Headers */,
</ins><span class="cx">                                 0F5B4A331C84F0D600F1B17E /* SlowPathReturnType.h in Headers */,
</span><span class="cx">                                 70ECA6091AFDBEA200449739 /* TemplateRegistryKey.h in Headers */,
</span><span class="cx">                                 0F24E54F17EE274900ABB217 /* TempRegisterSet.h in Headers */,
</span><span class="lines">@@ -8476,6 +8656,7 @@
</span><span class="cx">                                 FED94F2F171E3E2300BE77A4 /* Watchdog.h in Headers */,
</span><span class="cx">                                 0F919D2615853CE3004A4E7D /* Watchpoint.h in Headers */,
</span><span class="cx">                                 142E313C134FF0A600AFADB5 /* Weak.h in Headers */,
</span><ins>+                                AD2FCBE51DB58DAD00B3E736 /* JSWebAssemblyInstance.h in Headers */,
</ins><span class="cx">                                 14E84F9F14EE1ACC00D6D5D4 /* WeakBlock.h in Headers */,
</span><span class="cx">                                 14BFCE6910CDB1FC00364CCE /* WeakGCMap.h in Headers */,
</span><span class="cx">                                 AD86A93E1AA4D88D002FE77F /* WeakGCMapInlines.h in Headers */,
</span><span class="lines">@@ -8501,6 +8682,7 @@
</span><span class="cx">                                 79B1788E1D399B8000B1A567 /* JITMathICForwards.h in Headers */,
</span><span class="cx">                                 451539B912DC994500EF7AC4 /* Yarr.h in Headers */,
</span><span class="cx">                                 E37AD83C1DA4928600F3D412 /* DOMJITPatchpointParams.h in Headers */,
</span><ins>+                                AD2FCBFF1DB58DAD00B3E736 /* WebAssemblyTablePrototype.h in Headers */,
</ins><span class="cx">                                 86704B8512DBA33700A9FE7B /* YarrInterpreter.h in Headers */,
</span><span class="cx">                                 86704B8712DBA33700A9FE7B /* YarrJIT.h in Headers */,
</span><span class="cx">                                 0FB4767F1D99AEAD008EA6CB /* GCDeferralContextInlines.h in Headers */,
</span><span class="lines">@@ -9113,6 +9295,7 @@
</span><span class="cx">                                 14280863107EC11A0013E7B2 /* BooleanConstructor.cpp in Sources */,
</span><span class="cx">                                 14280864107EC11A0013E7B2 /* BooleanObject.cpp in Sources */,
</span><span class="cx">                                 14280865107EC11A0013E7B2 /* BooleanPrototype.cpp in Sources */,
</span><ins>+                                AD2FCBF61DB58DAD00B3E736 /* WebAssemblyMemoryPrototype.cpp in Sources */,
</ins><span class="cx">                                 A7D801A41880D66E0026C39B /* BuiltinExecutables.cpp in Sources */,
</span><span class="cx">                                 9EA5C7A1190F084200508EBE /* BundlePath.mm in Sources */,
</span><span class="cx">                                 C2FCAE1017A9C24E0034C735 /* BytecodeBasicBlock.cpp in Sources */,
</span><span class="lines">@@ -9130,6 +9313,7 @@
</span><span class="cx">                                 62D755D41B84FB3D001801FA /* CallFrameShuffler64.cpp in Sources */,
</span><span class="cx">                                 0F0B83B014BCF71600885B4F /* CallLinkInfo.cpp in Sources */,
</span><span class="cx">                                 0F93329D14CA7DC30085F3C6 /* CallLinkStatus.cpp in Sources */,
</span><ins>+                                AD2FCBFE1DB58DAD00B3E736 /* WebAssemblyTablePrototype.cpp in Sources */,
</ins><span class="cx">                                 0F6B8ADC1C4EFAC300969052 /* B3SSACalculator.cpp in Sources */,
</span><span class="cx">                                 627673231B680C1E00FD9F2E /* CallMode.cpp in Sources */,
</span><span class="cx">                                 0F3B7E2A19A11B8000D9BC56 /* CallVariant.cpp in Sources */,
</span><span class="lines">@@ -9220,6 +9404,7 @@
</span><span class="cx">                                 C2C0F7CD17BBFC5B00464FE4 /* DFGDesiredTransitions.cpp in Sources */,
</span><span class="cx">                                 0FE8534B1723CDA500B618F5 /* DFGDesiredWatchpoints.cpp in Sources */,
</span><span class="cx">                                 C2981FD817BAEE4B00A3BC98 /* DFGDesiredWeakReferences.cpp in Sources */,
</span><ins>+                                AD2FCBE81DB58DAD00B3E736 /* JSWebAssemblyRuntimeError.cpp in Sources */,
</ins><span class="cx">                                 0FF427641591A1CC004CB9FF /* DFGDisassembler.cpp in Sources */,
</span><span class="cx">                                 0F5A1273192D9FDF008764A3 /* DFGDoesGC.cpp in Sources */,
</span><span class="cx">                                 0FD3C82614115D4000FD81CB /* DFGDriver.cpp in Sources */,
</span><span class="lines">@@ -9301,6 +9486,7 @@
</span><span class="cx">                                 0F2B9CEC19D0BA7D00B1D1B5 /* DFGPromotedHeapLocation.cpp in Sources */,
</span><span class="cx">                                 0FB17662196B8F9E0091052A /* DFGPureValue.cpp in Sources */,
</span><span class="cx">                                 0F3A1BF91A9ECB7D000DE01A /* DFGPutStackSinkingPhase.cpp in Sources */,
</span><ins>+                                AD2FCBEA1DB58DAD00B3E736 /* JSWebAssemblyTable.cpp in Sources */,
</ins><span class="cx">                                 0F2FCCFB18A60070001A27F8 /* DFGSafepoint.cpp in Sources */,
</span><span class="cx">                                 86EC9DD21328DF82002B2AD7 /* DFGSpeculativeJIT.cpp in Sources */,
</span><span class="cx">                                 86880F1F14328BB900B08D42 /* DFGSpeculativeJIT32_64.cpp in Sources */,
</span><span class="lines">@@ -9308,6 +9494,7 @@
</span><span class="cx">                                 0F682FB219BCB36400FA3BAD /* DFGSSACalculator.cpp in Sources */,
</span><span class="cx">                                 A7D89CFF17A0B8CC00773AD8 /* DFGSSAConversionPhase.cpp in Sources */,
</span><span class="cx">                                 0FC20CB918556A3500C9E954 /* DFGSSALoweringPhase.cpp in Sources */,
</span><ins>+                                AD2FCBF01DB58DAD00B3E736 /* WebAssemblyInstanceConstructor.cpp in Sources */,
</ins><span class="cx">                                 0F9FB4F417FCB91700CB67F8 /* DFGStackLayoutPhase.cpp in Sources */,
</span><span class="cx">                                 0F4F29DF18B6AD1C0057BC15 /* DFGStaticExecutionCountEstimationPhase.cpp in Sources */,
</span><span class="cx">                                 0F9E32631B05AB0400801ED5 /* DFGStoreBarrierInsertionPhase.cpp in Sources */,
</span><span class="lines">@@ -9333,6 +9520,7 @@
</span><span class="cx">                                 0FDDBFB51666EED800C55FEF /* DFGVariableAccessDataDump.cpp in Sources */,
</span><span class="cx">                                 0F9495871C57F47500413A48 /* B3StackSlot.cpp in Sources */,
</span><span class="cx">                                 0F2BDC5115228FFD00CD8910 /* DFGVariableEvent.cpp in Sources */,
</span><ins>+                                AD2FCBF21DB58DAD00B3E736 /* WebAssemblyInstancePrototype.cpp in Sources */,
</ins><span class="cx">                                 0F2BDC4A1522809A00CD8910 /* DFGVariableEventStream.cpp in Sources */,
</span><span class="cx">                                 0FFFC95F14EF90BB00C72532 /* DFGVirtualRegisterAllocationPhase.cpp in Sources */,
</span><span class="cx">                                 0FC97F4118202119002C9B26 /* DFGWatchpointCollectionPhase.cpp in Sources */,
</span><span class="lines">@@ -9346,6 +9534,7 @@
</span><span class="cx">                                 99E45A2518A1B2590026D88F /* EncodedValue.cpp in Sources */,
</span><span class="cx">                                 147F39C7107EC37600427A48 /* Error.cpp in Sources */,
</span><span class="cx">                                 147F39C8107EC37600427A48 /* ErrorConstructor.cpp in Sources */,
</span><ins>+                                AD2FCBEC1DB58DAD00B3E736 /* WebAssemblyCompileErrorConstructor.cpp in Sources */,
</ins><span class="cx">                                 FEB58C14187B8B160098EF0B /* ErrorHandlingScope.cpp in Sources */,
</span><span class="cx">                                 147F39C9107EC37600427A48 /* ErrorInstance.cpp in Sources */,
</span><span class="cx">                                 147F39CA107EC37600427A48 /* ErrorPrototype.cpp in Sources */,
</span><span class="lines">@@ -9466,6 +9655,7 @@
</span><span class="cx">                                 A1B9E23D1B4E0D6700BC7FED /* IntlCollatorPrototype.cpp in Sources */,
</span><span class="cx">                                 A1587D6D1B4DC14100D69849 /* IntlDateTimeFormat.cpp in Sources */,
</span><span class="cx">                                 A1587D6F1B4DC14100D69849 /* IntlDateTimeFormatConstructor.cpp in Sources */,
</span><ins>+                                AD2FCC041DB58DAD00B3E736 /* JSWebAssemblyModule.cpp in Sources */,
</ins><span class="cx">                                 FE3A06BF1C11041600390FDD /* JITRightShiftGenerator.cpp in Sources */,
</span><span class="cx">                                 262D85B61C0D650F006ACB61 /* AirFixPartialRegisterStalls.cpp in Sources */,
</span><span class="cx">                                 E322E5A61DA644A8006E7709 /* FTLDOMJITPatchpointParams.cpp in Sources */,
</span><span class="lines">@@ -9488,6 +9678,7 @@
</span><span class="cx">                                 0F8F94441667635400D61971 /* JITCode.cpp in Sources */,
</span><span class="cx">                                 0FAF7EFD165BA91B000C8455 /* JITDisassembler.cpp in Sources */,
</span><span class="cx">                                 0F6DB7EC1D617D1100CDBF8E /* MacroAssemblerCodeRef.cpp in Sources */,
</span><ins>+                                AD2FCBE21DB58DAD00B3E736 /* JSWebAssemblyCompileError.cpp in Sources */,
</ins><span class="cx">                                 0F46808314BA573100BFE272 /* JITExceptions.cpp in Sources */,
</span><span class="cx">                                 0FB14E1E18124ACE009B6B4D /* JITInlineCacheGenerator.cpp in Sources */,
</span><span class="cx">                                 BCDD51EB0FB8DF74004A8BDC /* JITOpcodes.cpp in Sources */,
</span><span class="lines">@@ -9521,6 +9712,7 @@
</span><span class="cx">                                 14ABDF600A437FEF00ECCA01 /* JSCallbackObject.cpp in Sources */,
</span><span class="cx">                                 657CF45819BF6662004ACBF2 /* JSCallee.cpp in Sources */,
</span><span class="cx">                                 A7D801A81880D6A80026C39B /* JSCBuiltins.cpp in Sources */,
</span><ins>+                                AD2FCC001DB58DAD00B3E736 /* WebAssemblyModuleConstructor.cpp in Sources */,
</ins><span class="cx">                                 147F39D1107EC37600427A48 /* JSCell.cpp in Sources */,
</span><span class="cx">                                 147F39D6107EC37600427A48 /* JSCJSValue.cpp in Sources */,
</span><span class="cx">                                 1440FCE40A51E46B0005F061 /* JSClassRef.cpp in Sources */,
</span><span class="lines">@@ -9560,6 +9752,7 @@
</span><span class="cx">                                 7013CA8B1B491A9400CAE613 /* JSJob.cpp in Sources */,
</span><span class="cx">                                 140B7D1D0DC69AF7009C42B8 /* JSLexicalEnvironment.cpp in Sources */,
</span><span class="cx">                                 14280875107EC13E0013E7B2 /* JSLock.cpp in Sources */,
</span><ins>+                                AD2FCBFA1DB58DAD00B3E736 /* WebAssemblyRuntimeErrorPrototype.cpp in Sources */,
</ins><span class="cx">                                 C25D709B16DE99F400FCA6BC /* JSManagedValue.mm in Sources */,
</span><span class="cx">                                 A700874117CBE8EB00C3E643 /* JSMap.cpp in Sources */,
</span><span class="cx">                                 A74DEF95182D991400522C22 /* JSMapIterator.cpp in Sources */,
</span><span class="lines">@@ -9569,6 +9762,7 @@
</span><span class="cx">                                 E39DA4A61B7E8B7C0084F33A /* JSModuleRecord.cpp in Sources */,
</span><span class="cx">                                 0FB387921BFD31A100E3AB1E /* FTLCompile.cpp in Sources */,
</span><span class="cx">                                 E33E8D1C1B9013C300346B52 /* JSNativeStdFunction.cpp in Sources */,
</span><ins>+                                AD2FCBF81DB58DAD00B3E736 /* WebAssemblyRuntimeErrorConstructor.cpp in Sources */,
</ins><span class="cx">                                 147F39D4107EC37600427A48 /* JSObject.cpp in Sources */,
</span><span class="cx">                                 1482B7E40A43076000517CFC /* JSObjectRef.cpp in Sources */,
</span><span class="cx">                                 A7F993600FD7325100A0B2D0 /* JSONObject.cpp in Sources */,
</span><span class="lines">@@ -9642,6 +9836,7 @@
</span><span class="cx">                                 FE68C6381B90DE0B0042BCB3 /* MacroAssemblerPrinter.cpp in Sources */,
</span><span class="cx">                                 A7A4AE0817973B26005612B1 /* MacroAssemblerX86Common.cpp in Sources */,
</span><span class="cx">                                 FE3A06AC1C10C39E00390FDD /* JITBitOrGenerator.cpp in Sources */,
</span><ins>+                                AD2FCBFC1DB58DAD00B3E736 /* WebAssemblyTableConstructor.cpp in Sources */,
</ins><span class="cx">                                 A700873917CBE85300C3E643 /* MapConstructor.cpp in Sources */,
</span><span class="cx">                                 A74DEF93182D991400522C22 /* MapIteratorPrototype.cpp in Sources */,
</span><span class="cx">                                 A700873D17CBE8D300C3E643 /* MapPrototype.cpp in Sources */,
</span><span class="lines">@@ -9701,6 +9896,7 @@
</span><span class="cx">                                 0F190CAC189D82F6000AE5F0 /* ProfilerJettisonReason.cpp in Sources */,
</span><span class="cx">                                 0FF729B3166AD35C000F5BA3 /* ProfilerOrigin.cpp in Sources */,
</span><span class="cx">                                 0FF729B4166AD35C000F5BA3 /* ProfilerOriginStack.cpp in Sources */,
</span><ins>+                                AD2FCBE61DB58DAD00B3E736 /* JSWebAssemblyMemory.cpp in Sources */,
</ins><span class="cx">                                 0F9D4C0C1C3E1C11006CD984 /* FTLExceptionTarget.cpp in Sources */,
</span><span class="cx">                                 0FB1058B1675483100F8AB6E /* ProfilerOSRExit.cpp in Sources */,
</span><span class="cx">                                 0FB1058D1675483700F8AB6E /* ProfilerOSRExitSite.cpp in Sources */,
</span><span class="lines">@@ -9733,6 +9929,7 @@
</span><span class="cx">                                 A594558F18245EFD00CC3843 /* RemoteInspectionTarget.cpp in Sources */,
</span><span class="cx">                                 A5BA15EC182340B400A82E69 /* RemoteConnectionToTarget.mm in Sources */,
</span><span class="cx">                                 A5BA15EE182340B400A82E69 /* RemoteInspectorXPCConnection.mm in Sources */,
</span><ins>+                                AD2FCBF41DB58DAD00B3E736 /* WebAssemblyMemoryConstructor.cpp in Sources */,
</ins><span class="cx">                                 0F24E55017EE274900ABB217 /* Repatch.cpp in Sources */,
</span><span class="cx">                                 0F6B8AD81C4EDDA200969052 /* B3DuplicateTails.cpp in Sources */,
</span><span class="cx">                                 527773DE1AAF83AC00BDE7E8 /* RuntimeType.cpp in Sources */,
</span><span class="lines">@@ -9809,8 +10006,10 @@
</span><span class="cx">                                 0FF4274D158EBFE6004CB9FF /* udis86_itab_holder.c in Sources */,
</span><span class="cx">                                 0FF42745158EBE91004CB9FF /* udis86_syn-att.c in Sources */,
</span><span class="cx">                                 0FF42746158EBE91004CB9FF /* udis86_syn-intel.c in Sources */,
</span><ins>+                                AD2FCBEE1DB58DAD00B3E736 /* WebAssemblyCompileErrorPrototype.cpp in Sources */,
</ins><span class="cx">                                 0FF42747158EBE91004CB9FF /* udis86_syn.c in Sources */,
</span><span class="cx">                                 70B791961C024A28002481E2 /* GeneratorFunctionPrototype.cpp in Sources */,
</span><ins>+                                AD2FCBE41DB58DAD00B3E736 /* JSWebAssemblyInstance.cpp in Sources */,
</ins><span class="cx">                                 0FF42732158EBD58004CB9FF /* UDis86Disassembler.cpp in Sources */,
</span><span class="cx">                                 A76F279415F13C9600517D67 /* UnlinkedCodeBlock.cpp in Sources */,
</span><span class="cx">                                 14142E551B7973C000F4BF4B /* UnlinkedFunctionExecutable.cpp in Sources */,
</span><span class="lines">@@ -9821,6 +10020,7 @@
</span><span class="cx">                                 0FE0502C1AA9095600D33B33 /* VarOffset.cpp in Sources */,
</span><span class="cx">                                 0F20C2591A8013AB00DA3229 /* VirtualRegister.cpp in Sources */,
</span><span class="cx">                                 E18E3A590DF9278C00D90B34 /* VM.cpp in Sources */,
</span><ins>+                                AD2FCC021DB58DAD00B3E736 /* WebAssemblyModulePrototype.cpp in Sources */,
</ins><span class="cx">                                 FE5932A7183C5A2600A1ECCC /* VMEntryScope.cpp in Sources */,
</span><span class="cx">                                 FE187A011BFBE55E0038BBCA /* JITMulGenerator.cpp in Sources */,
</span><span class="cx">                                 53F40E8F1D5902820099A1B6 /* WASMB3IRGenerator.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -823,12 +823,9 @@
</span><span class="cx">         auto* wasm = WebAssemblyObject::create(vm, this, WebAssemblyObject::createStructure(vm, this, m_objectPrototype.get()));
</span><span class="cx">         putDirectWithoutTransition(vm, Identifier::fromString(exec, &quot;WebAssembly&quot;), wasm, DontEnum);
</span><span class="cx">         GlobalPropertyInfo extraStaticGlobals[] = {
</span><del>-            GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().ModulePrivateName(), wasm-&gt;getDirect(vm, Identifier::fromString(exec, &quot;Module&quot;)), DontEnum | DontDelete | ReadOnly),
-            GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().InstancePrivateName(), wasm-&gt;getDirect(vm, Identifier::fromString(exec, &quot;Instance&quot;)), DontEnum | DontDelete | ReadOnly),
-            GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().MemoryPrivateName(), wasm-&gt;getDirect(vm, Identifier::fromString(exec, &quot;Memory&quot;)), DontEnum | DontDelete | ReadOnly),
-            GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().TablePrivateName(), wasm-&gt;getDirect(vm, Identifier::fromString(exec, &quot;Table&quot;)), DontEnum | DontDelete | ReadOnly),
-            GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().CompileErrorPrivateName(), wasm-&gt;getDirect(vm, Identifier::fromString(exec, &quot;CompileError&quot;)), DontEnum | DontDelete | ReadOnly),
-            GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().RuntimeErrorPrivateName(), wasm-&gt;getDirect(vm, Identifier::fromString(exec, &quot;RuntimeError&quot;)), DontEnum | DontDelete | ReadOnly),
</del><ins>+#define REGISTER_WASM_CONSTRUCTOR_AS_GLOBAL_PROPERTY(NAME, ...) \
+            GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().NAME ## PrivateName(), wasm-&gt;getDirect(vm, Identifier::fromString(exec, #NAME)), DontEnum | DontDelete | ReadOnly),
+            FOR_EACH_WASM_CONSTRUCTOR_PROPERTY(REGISTER_WASM_CONSTRUCTOR_AS_GLOBAL_PROPERTY)
</ins><span class="cx">         };
</span><span class="cx">         addStaticGlobals(extraStaticGlobals, WTF_ARRAY_LENGTH(extraStaticGlobals));
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmWebAssemblyObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.cpp (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.cpp        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -26,177 +26,34 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;WebAssemblyObject.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;BuiltinNames.h&quot;
</del><span class="cx"> #include &quot;FunctionPrototype.h&quot;
</span><del>-#include &quot;InternalFunction.h&quot;
</del><span class="cx"> #include &quot;JSCInlines.h&quot;
</span><del>-#include &quot;JSDestructibleObject.h&quot;
</del><ins>+#include &quot;js/JSWebAssemblyCompileError.h&quot;
+#include &quot;js/JSWebAssemblyInstance.h&quot;
+#include &quot;js/JSWebAssemblyMemory.h&quot;
+#include &quot;js/JSWebAssemblyModule.h&quot;
+#include &quot;js/JSWebAssemblyRuntimeError.h&quot;
+#include &quot;js/JSWebAssemblyTable.h&quot;
+#include &quot;js/WebAssemblyCompileErrorConstructor.h&quot;
+#include &quot;js/WebAssemblyCompileErrorPrototype.h&quot;
+#include &quot;js/WebAssemblyInstanceConstructor.h&quot;
+#include &quot;js/WebAssemblyInstancePrototype.h&quot;
+#include &quot;js/WebAssemblyMemoryConstructor.h&quot;
+#include &quot;js/WebAssemblyMemoryPrototype.h&quot;
+#include &quot;js/WebAssemblyModuleConstructor.h&quot;
+#include &quot;js/WebAssemblyModulePrototype.h&quot;
+#include &quot;js/WebAssemblyRuntimeErrorConstructor.h&quot;
+#include &quot;js/WebAssemblyRuntimeErrorPrototype.h&quot;
+#include &quot;js/WebAssemblyTableConstructor.h&quot;
+#include &quot;js/WebAssemblyTablePrototype.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><span class="cx"> STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(WebAssemblyObject);
</span><span class="cx"> 
</span><del>-// Name, functionLength
-#define FOR_EACH_WASM_CONSTRUCTOR_PROPERTY(DO) \
-    DO(Module, 1) \
-    DO(Instance, 2) \
-    DO(Memory, 1) \
-    DO(Table, 1) \
-    DO(CompileError, 1) \
-    DO(RuntimeError, 1)
-
-// Name, functionLength
-#define FOR_EACH_WASM_FUNCTION_PROPERTY(DO) \
-    DO(validate, 1) \
-    DO(compile, 1)
-
-// FIXME Implement each of these in their own header file, and autogenerate *.lut.h files for *PrototypeTable. https://bugs.webkit.org/show_bug.cgi?id=161709
-#define DEFINE_WASM_OBJECT_CONSTRUCTOR_PROPERTY(NAME, functionLength) \
-    class JSWebAssembly ## NAME : public JSDestructibleObject { \
-    public: \
-        typedef JSDestructibleObject Base; \
-        \
-        static JSWebAssembly ## NAME* create(VM&amp; vm, Structure* structure) \
-        { \
-            auto* format = new (NotNull, allocateCell&lt;JSWebAssembly ## NAME&gt;(vm.heap)) JSWebAssembly ## NAME(vm, structure); \
-            format-&gt;finishCreation(vm); \
-            return format; \
-        } \
-        static Structure* createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype) \
-        { \
-            return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info()); \
-        } \
-        \
-        DECLARE_INFO; \
-        \
-    protected: \
-        JSWebAssembly ## NAME(VM&amp; vm, Structure* structure) \
-            : JSDestructibleObject(vm, structure) \
-        { \
-        } \
-        void finishCreation(VM&amp; vm) \
-        { \
-            Base::finishCreation(vm); \
-            ASSERT(inherits(info())); \
-        } \
-    }; \
-    const ClassInfo JSWebAssembly ## NAME::s_info = { &quot;WebAssembly.&quot; #NAME, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSWebAssembly ## NAME) }; \
-    \
-    class WebAssembly ## NAME ## Prototype : public JSDestructibleObject { \
-    public: \
-        typedef JSDestructibleObject Base; \
-        static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable; \
-        \
-        static WebAssembly ## NAME ## Prototype* create(VM&amp; vm, JSGlobalObject*, Structure* structure) \
-        { \
-            auto* object = new (NotNull, allocateCell&lt;WebAssembly ## NAME ## Prototype&gt;(vm.heap)) WebAssembly ## NAME ## Prototype(vm, structure); \
-            object-&gt;finishCreation(vm); \
-            return object; \
-        } \
-        static Structure* createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype) \
-        { \
-            return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info()); \
-        } \
-        \
-        DECLARE_INFO; \
-        \
-    protected: \
-        void finishCreation(VM&amp; vm) \
-        { \
-            Base::finishCreation(vm); \
-        } \
-        \
-    private: \
-        WebAssembly ## NAME ## Prototype(VM&amp; vm, Structure* structure) \
-            : JSDestructibleObject(vm, structure) \
-        { \
-        } \
-    }; \
-    static const struct CompactHashIndex NAME ## PrototypeTableIndex[] = { { 0, 0 } }; \
-    static const struct HashTableValue NAME ## PrototypeTableValues[] = { { nullptr, 0, NoIntrinsic, { 0 } } }; \
-    static const struct HashTable NAME ## PrototypeTable = { 0, 0, true, NAME ## PrototypeTableValues, NAME ## PrototypeTableIndex }; \
-    const ClassInfo WebAssembly ## NAME ## Prototype::s_info = { &quot;WebAssembly.&quot; #NAME &quot;.prototype&quot;, &amp;Base::s_info, &amp;NAME ## PrototypeTable, CREATE_METHOD_TABLE(WebAssembly ## NAME ## Prototype) }; \
-    \
-    static EncodedJSValue JSC_HOST_CALL constructJSWebAssembly ## NAME(ExecState* state) \
-    { \
-        VM&amp; vm = state-&gt;vm(); \
-        auto scope = DECLARE_THROW_SCOPE(vm); \
-        return JSValue::encode(throwException(state, scope, createError(state, ASCIILiteral(&quot;WebAssembly doesn't yet implement the &quot; #NAME &quot; constructor property&quot;)))); \
-    } \
-    \
-    static EncodedJSValue JSC_HOST_CALL callJSWebAssembly ## NAME(ExecState* state) \
-    { \
-    VM&amp; vm = state-&gt;vm(); \
-    auto scope = DECLARE_THROW_SCOPE(vm); \
-    return JSValue::encode(throwException(state, scope, createError(state, ASCIILiteral(&quot;WebAssembly doesn't yet implement the &quot; #NAME &quot; constructor property&quot;)))); \
-    } \
-    \
-    class WebAssembly ## NAME ## Constructor : public InternalFunction { \
-    public: \
-        typedef InternalFunction Base; \
-        static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable; \
-        \
-        static WebAssembly ## NAME ## Constructor* create(VM&amp; vm, Structure* structure, WebAssembly ## NAME ## Prototype* NAME ## Prototype, Structure* NAME ## Structure) \
-        { \
-            WebAssembly ## NAME ## Constructor* constructor = new (NotNull, allocateCell&lt;WebAssembly ## NAME ## Constructor&gt;(vm.heap)) WebAssembly ## NAME ## Constructor(vm, structure); \
-            constructor-&gt;finishCreation(vm, NAME ## Prototype, NAME ## Structure); \
-            return constructor; \
-        } \
-        static Structure* createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype) \
-        { \
-            return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info()); \
-        } \
-        \
-        DECLARE_INFO; \
-        \
-        Structure* NAME ## Structure() const { return m_ ## NAME ## Structure.get(); } \
-        \
-    protected: \
-        void finishCreation(VM&amp; vm, WebAssembly ## NAME ## Prototype* NAME ## Prototype, Structure* NAME ## Structure) \
-        { \
-            Base::finishCreation(vm, ASCIILiteral(#NAME)); \
-            putDirectWithoutTransition(vm, vm.propertyNames-&gt;prototype, NAME ## Prototype, DontEnum | DontDelete | ReadOnly); \
-            putDirectWithoutTransition(vm, vm.propertyNames-&gt;length, jsNumber(functionLength), ReadOnly | DontEnum | DontDelete); \
-            m_ ## NAME ## Structure.set(vm, this, NAME ## Structure); \
-        } \
-        \
-    private: \
-        WebAssembly ## NAME ## Constructor(VM&amp; vm, Structure* structure) \
-            : InternalFunction(vm, structure) \
-        { \
-        } \
-        static ConstructType getConstructData(JSCell*, ConstructData&amp; constructData) \
-        { \
-            constructData.native.function = constructJSWebAssembly ## NAME; \
-            return ConstructType::Host; \
-        } \
-        static CallType getCallData(JSCell*, CallData&amp; callData) \
-        { \
-            callData.native.function = callJSWebAssembly ## NAME; \
-            return CallType::Host; \
-        } \
-        static void visitChildren(JSCell* cell, SlotVisitor&amp; visitor) \
-        { \
-            auto* thisObject = jsCast&lt;WebAssembly ## NAME ## Constructor*&gt;(cell); \
-            ASSERT_GC_OBJECT_INHERITS(thisObject, info()); \
-            Base::visitChildren(thisObject, visitor); \
-            visitor.append(&amp;thisObject-&gt;m_ ## NAME ## Structure); \
-        } \
-        \
-        WriteBarrier&lt;Structure&gt; m_ ## NAME ## Structure; \
-    }; \
-    static const struct CompactHashIndex NAME ## ConstructorTableIndex[] = { { 0, 0 } }; \
-    static const struct HashTableValue NAME ## ConstructorTableValues[] = { { nullptr, 0, NoIntrinsic, { 0 } } }; \
-    static const struct HashTable NAME ## ConstructorTable = { 0, 0, true, NAME ## ConstructorTableValues, NAME ## ConstructorTableIndex }; \
-    const ClassInfo WebAssembly ## NAME ## Constructor::s_info = { &quot;Function&quot;, &amp;Base::s_info, &amp;NAME ## ConstructorTable, CREATE_METHOD_TABLE(WebAssembly ## NAME ## Constructor) };
-
-FOR_EACH_WASM_CONSTRUCTOR_PROPERTY(DEFINE_WASM_OBJECT_CONSTRUCTOR_PROPERTY)
-
-
</del><span class="cx"> #define DECLARE_WASM_OBJECT_FUNCTION(NAME, ...) EncodedJSValue JSC_HOST_CALL wasmObjectFunc ## NAME(ExecState*);
</span><span class="cx"> FOR_EACH_WASM_FUNCTION_PROPERTY(DECLARE_WASM_OBJECT_FUNCTION)
</span><span class="cx"> 
</span><del>-
</del><span class="cx"> const ClassInfo WebAssemblyObject::s_info = { &quot;WebAssembly&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(WebAssemblyObject) };
</span><span class="cx"> 
</span><span class="cx"> WebAssemblyObject* WebAssemblyObject::create(VM&amp; vm, JSGlobalObject* globalObject, Structure* structure)
</span><span class="lines">@@ -237,9 +94,6 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-// ------------------------------ Constructors -----------------------------
-
-    
</del><span class="cx"> // ------------------------------ Functions --------------------------------
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL wasmObjectFuncvalidate(ExecState* state)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h (207571 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h        2016-10-19 22:06:47 UTC (rev 207571)
+++ trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -45,4 +45,18 @@
</span><span class="cx">     WebAssemblyObject(VM&amp;, Structure*);
</span><span class="cx"> };
</span><span class="cx"> 
</span><ins>+// Name, functionLength
+#define FOR_EACH_WASM_CONSTRUCTOR_PROPERTY(DO) \
+    DO(Module, 1) \
+    DO(Instance, 2) \
+    DO(Memory, 1) \
+    DO(Table, 1) \
+    DO(CompileError, 1) \
+    DO(RuntimeError, 1)
+
+// Name, functionLength
+#define FOR_EACH_WASM_FUNCTION_PROPERTY(DO) \
+    DO(validate, 1) \
+    DO(compile, 1)
+
</ins><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyCompileErrorcppfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.cpp (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;JSWebAssemblyCompileError.h&quot;
+
+#include &quot;JSCInlines.h&quot;
+
+namespace JSC {
+
+JSWebAssemblyCompileError* JSWebAssemblyCompileError::create(ExecState* state, Structure* structure, const String&amp; message, bool useCurrentFrame)
+{
+    auto&amp; vm = state-&gt;vm();
+    auto* instance = new (NotNull, allocateCell&lt;JSWebAssemblyCompileError&gt;(vm.heap)) JSWebAssemblyCompileError(vm, structure);
+    instance-&gt;finishCreation(state, vm, message, useCurrentFrame);
+    return instance;
+}
+
+JSWebAssemblyCompileError::JSWebAssemblyCompileError(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+const ClassInfo JSWebAssemblyCompileError::s_info = { &quot;WebAssembly.CompileError&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSWebAssemblyCompileError) };
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyCompileErrorhfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,44 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;ErrorInstance.h&quot;
+
+namespace JSC {
+
+class JSWebAssemblyCompileError : public ErrorInstance {
+public:
+    typedef ErrorInstance Base;
+
+    static JSWebAssemblyCompileError* create(ExecState*, Structure*, const String&amp;, bool);
+
+    DECLARE_INFO;
+
+protected:
+    JSWebAssemblyCompileError(VM&amp;, Structure*);
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyInstancecppfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;JSWebAssemblyInstance.h&quot;
+
+#include &quot;JSCInlines.h&quot;
+
+namespace JSC {
+
+JSWebAssemblyInstance* JSWebAssemblyInstance::create(VM&amp; vm, Structure* structure)
+{
+    auto* instance = new (NotNull, allocateCell&lt;JSWebAssemblyInstance&gt;(vm.heap)) JSWebAssemblyInstance(vm, structure);
+    instance-&gt;finishCreation(vm);
+    return instance;
+}
+
+Structure* JSWebAssemblyInstance::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+JSWebAssemblyInstance::JSWebAssemblyInstance(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+void JSWebAssemblyInstance::finishCreation(VM&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+}
+
+void JSWebAssemblyInstance::destroy(JSCell* cell)
+{
+    static_cast&lt;JSWebAssemblyInstance*&gt;(cell)-&gt;JSWebAssemblyInstance::~JSWebAssemblyInstance();
+}
+
+void JSWebAssemblyInstance::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
+{
+    auto* thisObject = jsCast&lt;JSWebAssemblyInstance*&gt;(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+
+    Base::visitChildren(thisObject, visitor);
+}
+
+const ClassInfo JSWebAssemblyInstance::s_info = { &quot;WebAssembly.Instance&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSWebAssemblyInstance) };
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyInstancehfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;JSDestructibleObject.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class JSWebAssemblyInstance : public JSDestructibleObject {
+public:
+    typedef JSDestructibleObject Base;
+
+    static JSWebAssemblyInstance* create(VM&amp;, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+protected:
+    JSWebAssemblyInstance(VM&amp;, Structure*);
+    void finishCreation(VM&amp;);
+    static void destroy(JSCell*);
+    static void visitChildren(JSCell*, SlotVisitor&amp;);
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyMemorycppfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;JSWebAssemblyMemory.h&quot;
+
+#include &quot;JSCInlines.h&quot;
+
+namespace JSC {
+
+JSWebAssemblyMemory* JSWebAssemblyMemory::create(VM&amp; vm, Structure* structure)
+{
+    auto* instance = new (NotNull, allocateCell&lt;JSWebAssemblyMemory&gt;(vm.heap)) JSWebAssemblyMemory(vm, structure);
+    instance-&gt;finishCreation(vm);
+    return instance;
+}
+
+Structure* JSWebAssemblyMemory::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+JSWebAssemblyMemory::JSWebAssemblyMemory(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+void JSWebAssemblyMemory::finishCreation(VM&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+}
+
+void JSWebAssemblyMemory::destroy(JSCell* cell)
+{
+    static_cast&lt;JSWebAssemblyMemory*&gt;(cell)-&gt;JSWebAssemblyMemory::~JSWebAssemblyMemory();
+}
+
+void JSWebAssemblyMemory::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
+{
+    auto* thisObject = jsCast&lt;JSWebAssemblyMemory*&gt;(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+
+    Base::visitChildren(thisObject, visitor);
+}
+
+const ClassInfo JSWebAssemblyMemory::s_info = { &quot;WebAssembly.Memory&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSWebAssemblyMemory) };
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyMemoryhfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;JSDestructibleObject.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class JSWebAssemblyMemory : public JSDestructibleObject {
+public:
+    typedef JSDestructibleObject Base;
+
+    static JSWebAssemblyMemory* create(VM&amp;, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+protected:
+    JSWebAssemblyMemory(VM&amp;, Structure*);
+    void finishCreation(VM&amp;);
+    static void destroy(JSCell*);
+    static void visitChildren(JSCell*, SlotVisitor&amp;);
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyModulecppfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;JSWebAssemblyModule.h&quot;
+
+#include &quot;JSCInlines.h&quot;
+
+namespace JSC {
+
+JSWebAssemblyModule* JSWebAssemblyModule::create(VM&amp; vm, Structure* structure)
+{
+    auto* instance = new (NotNull, allocateCell&lt;JSWebAssemblyModule&gt;(vm.heap)) JSWebAssemblyModule(vm, structure);
+    instance-&gt;finishCreation(vm);
+    return instance;
+}
+
+Structure* JSWebAssemblyModule::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+JSWebAssemblyModule::JSWebAssemblyModule(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+void JSWebAssemblyModule::finishCreation(VM&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+}
+
+void JSWebAssemblyModule::destroy(JSCell* cell)
+{
+    static_cast&lt;JSWebAssemblyModule*&gt;(cell)-&gt;JSWebAssemblyModule::~JSWebAssemblyModule();
+}
+
+void JSWebAssemblyModule::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
+{
+    auto* thisObject = jsCast&lt;JSWebAssemblyModule*&gt;(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+
+    Base::visitChildren(thisObject, visitor);
+}
+
+const ClassInfo JSWebAssemblyModule::s_info = { &quot;WebAssembly.Module&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSWebAssemblyModule) };
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyModulehfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;JSDestructibleObject.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class JSWebAssemblyModule : public JSDestructibleObject {
+public:
+    typedef JSDestructibleObject Base;
+
+    static JSWebAssemblyModule* create(VM&amp;, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+protected:
+    JSWebAssemblyModule(VM&amp;, Structure*);
+    void finishCreation(VM&amp;);
+    static void destroy(JSCell*);
+    static void visitChildren(JSCell*, SlotVisitor&amp;);
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyRuntimeErrorcppfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.cpp (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;JSWebAssemblyRuntimeError.h&quot;
+
+#include &quot;JSCInlines.h&quot;
+
+namespace JSC {
+
+JSWebAssemblyRuntimeError* JSWebAssemblyRuntimeError::create(ExecState* state, Structure* structure, const String&amp; message, bool useCurrentFrame)
+{
+    auto&amp; vm = state-&gt;vm();
+    auto* instance = new (NotNull, allocateCell&lt;JSWebAssemblyRuntimeError&gt;(vm.heap)) JSWebAssemblyRuntimeError(vm, structure);
+    instance-&gt;finishCreation(state, vm, message, useCurrentFrame);
+    return instance;
+}
+
+JSWebAssemblyRuntimeError::JSWebAssemblyRuntimeError(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+const ClassInfo JSWebAssemblyRuntimeError::s_info = { &quot;WebAssembly.RuntimeError&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSWebAssemblyRuntimeError) };
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyRuntimeErrorhfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,44 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;ErrorInstance.h&quot;
+
+namespace JSC {
+
+class JSWebAssemblyRuntimeError : public ErrorInstance {
+public:
+    typedef ErrorInstance Base;
+
+    static JSWebAssemblyRuntimeError* create(ExecState*, Structure*, const String&amp;, bool);
+
+    DECLARE_INFO;
+
+protected:
+    JSWebAssemblyRuntimeError(VM&amp;, Structure*);
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyTablecppfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;JSWebAssemblyTable.h&quot;
+
+#include &quot;JSCInlines.h&quot;
+
+namespace JSC {
+
+JSWebAssemblyTable* JSWebAssemblyTable::create(VM&amp; vm, Structure* structure)
+{
+    auto* instance = new (NotNull, allocateCell&lt;JSWebAssemblyTable&gt;(vm.heap)) JSWebAssemblyTable(vm, structure);
+    instance-&gt;finishCreation(vm);
+    return instance;
+}
+
+Structure* JSWebAssemblyTable::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+JSWebAssemblyTable::JSWebAssemblyTable(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+void JSWebAssemblyTable::finishCreation(VM&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+}
+
+void JSWebAssemblyTable::destroy(JSCell* cell)
+{
+    static_cast&lt;JSWebAssemblyTable*&gt;(cell)-&gt;JSWebAssemblyTable::~JSWebAssemblyTable();
+}
+
+void JSWebAssemblyTable::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
+{
+    auto* thisObject = jsCast&lt;JSWebAssemblyTable*&gt;(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+
+    Base::visitChildren(thisObject, visitor);
+}
+
+const ClassInfo JSWebAssemblyTable::s_info = { &quot;WebAssembly.Table&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSWebAssemblyTable) };
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyTablehfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;JSDestructibleObject.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class JSWebAssemblyTable : public JSDestructibleObject {
+public:
+    typedef JSDestructibleObject Base;
+
+    static JSWebAssemblyTable* create(VM&amp;, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+protected:
+    JSWebAssemblyTable(VM&amp;, Structure*);
+    void finishCreation(VM&amp;);
+    static void destroy(JSCell*);
+    static void visitChildren(JSCell*, SlotVisitor&amp;);
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyCompileErrorConstructorcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorConstructor.cpp (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorConstructor.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorConstructor.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,103 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebAssemblyCompileErrorConstructor.h&quot;
+
+#include &quot;FunctionPrototype.h&quot;
+#include &quot;JSCInlines.h&quot;
+#include &quot;WebAssemblyCompileErrorPrototype.h&quot;
+
+#include &quot;WebAssemblyCompileErrorConstructor.lut.h&quot;
+
+namespace JSC {
+
+const ClassInfo WebAssemblyCompileErrorConstructor::s_info = { &quot;Function&quot;, &amp;Base::s_info, &amp;constructorTableWebAssemblyCompileError, CREATE_METHOD_TABLE(WebAssemblyCompileErrorConstructor) };
+
+/* Source for WebAssemblyCompileErrorConstructor.lut.h
+ @begin constructorTableWebAssemblyCompileError
+ @end
+ */
+
+static EncodedJSValue JSC_HOST_CALL constructJSWebAssemblyCompileError(ExecState* state)
+{
+    VM&amp; vm = state-&gt;vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+    return JSValue::encode(throwException(state, scope, createError(state, ASCIILiteral(&quot;WebAssembly doesn't yet implement the CompileError constructor property&quot;))));
+}
+
+static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyCompileError(ExecState* state)
+{
+    VM&amp; vm = state-&gt;vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(state, scope, &quot;WebAssembly.CompileError&quot;));
+}
+
+WebAssemblyCompileErrorConstructor* WebAssemblyCompileErrorConstructor::create(VM&amp; vm, Structure* structure, WebAssemblyCompileErrorPrototype* thisPrototype, Structure* thisStructure)
+{
+    auto* constructor = new (NotNull, allocateCell&lt;WebAssemblyCompileErrorConstructor&gt;(vm.heap)) WebAssemblyCompileErrorConstructor(vm, structure);
+    constructor-&gt;finishCreation(vm, thisPrototype, thisStructure);
+    return constructor;
+}
+
+Structure* WebAssemblyCompileErrorConstructor::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+void WebAssemblyCompileErrorConstructor::finishCreation(VM&amp; vm, WebAssemblyCompileErrorPrototype* prototype, Structure* structure)
+{
+    Base::finishCreation(vm, ASCIILiteral(&quot;CompileError&quot;));
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;prototype, prototype, DontEnum | DontDelete | ReadOnly);
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;length, jsNumber(1), ReadOnly | DontEnum | DontDelete);
+    m_CompileErrorStructure.set(vm, this, structure);
+}
+
+WebAssemblyCompileErrorConstructor::WebAssemblyCompileErrorConstructor(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+ConstructType WebAssemblyCompileErrorConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
+{
+    constructData.native.function = constructJSWebAssemblyCompileError;
+    return ConstructType::Host;
+}
+
+CallType WebAssemblyCompileErrorConstructor::getCallData(JSCell*, CallData&amp; callData)
+{
+    callData.native.function = callJSWebAssemblyCompileError;
+    return CallType::Host;
+}
+
+void WebAssemblyCompileErrorConstructor::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
+{
+    auto* thisObject = jsCast&lt;WebAssemblyCompileErrorConstructor*&gt;(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+    Base::visitChildren(thisObject, visitor);
+    visitor.append(&amp;thisObject-&gt;m_CompileErrorStructure);
+}
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyCompileErrorConstructorhfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorConstructor.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorConstructor.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorConstructor.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;InternalFunction.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class WebAssemblyCompileErrorPrototype;
+
+class WebAssemblyCompileErrorConstructor : public InternalFunction {
+public:
+    typedef InternalFunction Base;
+    static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
+
+    static WebAssemblyCompileErrorConstructor* create(VM&amp;, Structure*, WebAssemblyCompileErrorPrototype*, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+    Structure* CompileErrorStructure() const { return m_CompileErrorStructure.get(); }
+
+protected:
+    void finishCreation(VM&amp;, WebAssemblyCompileErrorPrototype*, Structure*);
+
+private:
+    WebAssemblyCompileErrorConstructor(VM&amp;, Structure*);
+    static ConstructType getConstructData(JSCell*, ConstructData&amp;);
+    static CallType getCallData(JSCell*, CallData&amp;);
+    static void visitChildren(JSCell*, SlotVisitor&amp;);
+
+    WriteBarrier&lt;Structure&gt; m_CompileErrorStructure;
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyCompileErrorPrototypecppfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.cpp (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,65 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebAssemblyCompileErrorPrototype.h&quot;
+
+#include &quot;FunctionPrototype.h&quot;
+#include &quot;JSCInlines.h&quot;
+
+#include &quot;WebAssemblyCompileErrorPrototype.lut.h&quot;
+
+namespace JSC {
+
+const ClassInfo WebAssemblyCompileErrorPrototype::s_info = { &quot;WebAssembly.CompileError.prototype&quot;, &amp;Base::s_info, &amp;prototypeTableWebAssemblyCompileError, CREATE_METHOD_TABLE(WebAssemblyCompileErrorPrototype) };
+
+/* Source for WebAssemblyCompileErrorPrototype.lut.h
+ @begin prototypeTableWebAssemblyCompileError
+ @end
+ */
+
+WebAssemblyCompileErrorPrototype* WebAssemblyCompileErrorPrototype::create(VM&amp; vm, JSGlobalObject*, Structure* structure)
+{
+    auto* object = new (NotNull, allocateCell&lt;WebAssemblyCompileErrorPrototype&gt;(vm.heap)) WebAssemblyCompileErrorPrototype(vm, structure);
+    object-&gt;finishCreation(vm);
+    return object;
+}
+
+Structure* WebAssemblyCompileErrorPrototype::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+void WebAssemblyCompileErrorPrototype::finishCreation(VM&amp; vm)
+{
+    Base::finishCreation(vm);
+}
+
+WebAssemblyCompileErrorPrototype::WebAssemblyCompileErrorPrototype(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyCompileErrorPrototypehfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;JSDestructibleObject.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class WebAssemblyCompileErrorPrototype : public JSNonFinalObject {
+public:
+    typedef JSNonFinalObject Base;
+    static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
+
+    static WebAssemblyCompileErrorPrototype* create(VM&amp;, JSGlobalObject*, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+protected:
+    void finishCreation(VM&amp;);
+
+private:
+    WebAssemblyCompileErrorPrototype(VM&amp;, Structure*);
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyInstanceConstructorcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.cpp (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,103 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebAssemblyInstanceConstructor.h&quot;
+
+#include &quot;FunctionPrototype.h&quot;
+#include &quot;JSCInlines.h&quot;
+#include &quot;WebAssemblyInstancePrototype.h&quot;
+
+#include &quot;WebAssemblyInstanceConstructor.lut.h&quot;
+
+namespace JSC {
+
+const ClassInfo WebAssemblyInstanceConstructor::s_info = { &quot;Function&quot;, &amp;Base::s_info, &amp;constructorTableWebAssemblyInstance, CREATE_METHOD_TABLE(WebAssemblyInstanceConstructor) };
+
+/* Source for WebAssemblyInstanceConstructor.lut.h
+ @begin constructorTableWebAssemblyInstance
+ @end
+ */
+
+static EncodedJSValue JSC_HOST_CALL constructJSWebAssemblyInstance(ExecState* state)
+{
+    VM&amp; vm = state-&gt;vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+    return JSValue::encode(throwException(state, scope, createError(state, ASCIILiteral(&quot;WebAssembly doesn't yet implement the Instance constructor property&quot;))));
+}
+
+static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyInstance(ExecState* state)
+{
+    VM&amp; vm = state-&gt;vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(state, scope, &quot;WebAssembly.Instance&quot;));
+}
+
+WebAssemblyInstanceConstructor* WebAssemblyInstanceConstructor::create(VM&amp; vm, Structure* structure, WebAssemblyInstancePrototype* thisPrototype, Structure* thisStructure)
+{
+    auto* constructor = new (NotNull, allocateCell&lt;WebAssemblyInstanceConstructor&gt;(vm.heap)) WebAssemblyInstanceConstructor(vm, structure);
+    constructor-&gt;finishCreation(vm, thisPrototype, thisStructure);
+    return constructor;
+}
+
+Structure* WebAssemblyInstanceConstructor::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+void WebAssemblyInstanceConstructor::finishCreation(VM&amp; vm, WebAssemblyInstancePrototype* prototype, Structure* structure)
+{
+    Base::finishCreation(vm, ASCIILiteral(&quot;Instance&quot;));
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;prototype, prototype, DontEnum | DontDelete | ReadOnly);
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;length, jsNumber(1), ReadOnly | DontEnum | DontDelete);
+    m_InstanceStructure.set(vm, this, structure);
+}
+
+WebAssemblyInstanceConstructor::WebAssemblyInstanceConstructor(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+ConstructType WebAssemblyInstanceConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
+{
+    constructData.native.function = constructJSWebAssemblyInstance;
+    return ConstructType::Host;
+}
+
+CallType WebAssemblyInstanceConstructor::getCallData(JSCell*, CallData&amp; callData)
+{
+    callData.native.function = callJSWebAssemblyInstance;
+    return CallType::Host;
+}
+
+void WebAssemblyInstanceConstructor::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
+{
+    auto* thisObject = jsCast&lt;WebAssemblyInstanceConstructor*&gt;(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+    Base::visitChildren(thisObject, visitor);
+    visitor.append(&amp;thisObject-&gt;m_InstanceStructure);
+}
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyInstanceConstructorhfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;InternalFunction.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class WebAssemblyInstancePrototype;
+
+class WebAssemblyInstanceConstructor : public InternalFunction {
+public:
+    typedef InternalFunction Base;
+    static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
+
+    static WebAssemblyInstanceConstructor* create(VM&amp;, Structure*, WebAssemblyInstancePrototype*, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+    Structure* InstanceStructure() const { return m_InstanceStructure.get(); }
+
+protected:
+    void finishCreation(VM&amp;, WebAssemblyInstancePrototype*, Structure*);
+
+private:
+    WebAssemblyInstanceConstructor(VM&amp;, Structure*);
+    static ConstructType getConstructData(JSCell*, ConstructData&amp;);
+    static CallType getCallData(JSCell*, CallData&amp;);
+    static void visitChildren(JSCell*, SlotVisitor&amp;);
+
+    WriteBarrier&lt;Structure&gt; m_InstanceStructure;
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyInstancePrototypecppfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.cpp (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,65 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebAssemblyInstancePrototype.h&quot;
+
+#include &quot;FunctionPrototype.h&quot;
+#include &quot;JSCInlines.h&quot;
+
+#include &quot;WebAssemblyInstancePrototype.lut.h&quot;
+
+namespace JSC {
+
+const ClassInfo WebAssemblyInstancePrototype::s_info = { &quot;WebAssembly.Instance.prototype&quot;, &amp;Base::s_info, &amp;prototypeTableWebAssemblyInstance, CREATE_METHOD_TABLE(WebAssemblyInstancePrototype) };
+
+/* Source for WebAssemblyInstancePrototype.lut.h
+ @begin prototypeTableWebAssemblyInstance
+ @end
+ */
+
+WebAssemblyInstancePrototype* WebAssemblyInstancePrototype::create(VM&amp; vm, JSGlobalObject*, Structure* structure)
+{
+    auto* object = new (NotNull, allocateCell&lt;WebAssemblyInstancePrototype&gt;(vm.heap)) WebAssemblyInstancePrototype(vm, structure);
+    object-&gt;finishCreation(vm);
+    return object;
+}
+
+Structure* WebAssemblyInstancePrototype::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+void WebAssemblyInstancePrototype::finishCreation(VM&amp; vm)
+{
+    Base::finishCreation(vm);
+}
+
+WebAssemblyInstancePrototype::WebAssemblyInstancePrototype(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyInstancePrototypehfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;JSDestructibleObject.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class WebAssemblyInstancePrototype : public JSNonFinalObject {
+public:
+    typedef JSNonFinalObject Base;
+    static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
+
+    static WebAssemblyInstancePrototype* create(VM&amp;, JSGlobalObject*, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+protected:
+    void finishCreation(VM&amp;);
+
+private:
+    WebAssemblyInstancePrototype(VM&amp;, Structure*);
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyMemoryConstructorcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.cpp (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,103 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebAssemblyMemoryConstructor.h&quot;
+
+#include &quot;FunctionPrototype.h&quot;
+#include &quot;JSCInlines.h&quot;
+#include &quot;WebAssemblyMemoryPrototype.h&quot;
+
+#include &quot;WebAssemblyMemoryConstructor.lut.h&quot;
+
+namespace JSC {
+
+const ClassInfo WebAssemblyMemoryConstructor::s_info = { &quot;Function&quot;, &amp;Base::s_info, &amp;constructorTableWebAssemblyMemory, CREATE_METHOD_TABLE(WebAssemblyMemoryConstructor) };
+
+/* Source for WebAssemblyMemoryConstructor.lut.h
+ @begin constructorTableWebAssemblyMemory
+ @end
+ */
+
+static EncodedJSValue JSC_HOST_CALL constructJSWebAssemblyMemory(ExecState* state)
+{
+    VM&amp; vm = state-&gt;vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+    return JSValue::encode(throwException(state, scope, createError(state, ASCIILiteral(&quot;WebAssembly doesn't yet implement the Memory constructor property&quot;))));
+}
+
+static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyMemory(ExecState* state)
+{
+    VM&amp; vm = state-&gt;vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(state, scope, &quot;WebAssembly.Memory&quot;));
+}
+
+WebAssemblyMemoryConstructor* WebAssemblyMemoryConstructor::create(VM&amp; vm, Structure* structure, WebAssemblyMemoryPrototype* thisPrototype, Structure* thisStructure)
+{
+    auto* constructor = new (NotNull, allocateCell&lt;WebAssemblyMemoryConstructor&gt;(vm.heap)) WebAssemblyMemoryConstructor(vm, structure);
+    constructor-&gt;finishCreation(vm, thisPrototype, thisStructure);
+    return constructor;
+}
+
+Structure* WebAssemblyMemoryConstructor::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+void WebAssemblyMemoryConstructor::finishCreation(VM&amp; vm, WebAssemblyMemoryPrototype* prototype, Structure* structure)
+{
+    Base::finishCreation(vm, ASCIILiteral(&quot;Memory&quot;));
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;prototype, prototype, DontEnum | DontDelete | ReadOnly);
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;length, jsNumber(1), ReadOnly | DontEnum | DontDelete);
+    m_MemoryStructure.set(vm, this, structure);
+}
+
+WebAssemblyMemoryConstructor::WebAssemblyMemoryConstructor(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+ConstructType WebAssemblyMemoryConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
+{
+    constructData.native.function = constructJSWebAssemblyMemory;
+    return ConstructType::Host;
+}
+
+CallType WebAssemblyMemoryConstructor::getCallData(JSCell*, CallData&amp; callData)
+{
+    callData.native.function = callJSWebAssemblyMemory;
+    return CallType::Host;
+}
+
+void WebAssemblyMemoryConstructor::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
+{
+    auto* thisObject = jsCast&lt;WebAssemblyMemoryConstructor*&gt;(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+    Base::visitChildren(thisObject, visitor);
+    visitor.append(&amp;thisObject-&gt;m_MemoryStructure);
+}
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyMemoryConstructorhfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;InternalFunction.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class WebAssemblyMemoryPrototype;
+
+class WebAssemblyMemoryConstructor : public InternalFunction {
+public:
+    typedef InternalFunction Base;
+    static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
+
+    static WebAssemblyMemoryConstructor* create(VM&amp;, Structure*, WebAssemblyMemoryPrototype*, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+    Structure* MemoryStructure() const { return m_MemoryStructure.get(); }
+
+protected:
+    void finishCreation(VM&amp;, WebAssemblyMemoryPrototype*, Structure*);
+
+private:
+    WebAssemblyMemoryConstructor(VM&amp;, Structure*);
+    static ConstructType getConstructData(JSCell*, ConstructData&amp;);
+    static CallType getCallData(JSCell*, CallData&amp;);
+    static void visitChildren(JSCell*, SlotVisitor&amp;);
+
+    WriteBarrier&lt;Structure&gt; m_MemoryStructure;
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyMemoryPrototypecppfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryPrototype.cpp (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryPrototype.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryPrototype.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,65 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebAssemblyMemoryPrototype.h&quot;
+
+#include &quot;FunctionPrototype.h&quot;
+#include &quot;JSCInlines.h&quot;
+
+#include &quot;WebAssemblyMemoryPrototype.lut.h&quot;
+
+namespace JSC {
+
+const ClassInfo WebAssemblyMemoryPrototype::s_info = { &quot;WebAssembly.Memory.prototype&quot;, &amp;Base::s_info, &amp;prototypeTableWebAssemblyMemory, CREATE_METHOD_TABLE(WebAssemblyMemoryPrototype) };
+
+/* Source for WebAssemblyMemoryPrototype.lut.h
+ @begin prototypeTableWebAssemblyMemory
+ @end
+ */
+
+WebAssemblyMemoryPrototype* WebAssemblyMemoryPrototype::create(VM&amp; vm, JSGlobalObject*, Structure* structure)
+{
+    auto* object = new (NotNull, allocateCell&lt;WebAssemblyMemoryPrototype&gt;(vm.heap)) WebAssemblyMemoryPrototype(vm, structure);
+    object-&gt;finishCreation(vm);
+    return object;
+}
+
+Structure* WebAssemblyMemoryPrototype::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+void WebAssemblyMemoryPrototype::finishCreation(VM&amp; vm)
+{
+    Base::finishCreation(vm);
+}
+
+WebAssemblyMemoryPrototype::WebAssemblyMemoryPrototype(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyMemoryPrototypehfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryPrototype.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryPrototype.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyMemoryPrototype.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;JSDestructibleObject.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class WebAssemblyMemoryPrototype : public JSNonFinalObject {
+public:
+    typedef JSNonFinalObject Base;
+    static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
+
+    static WebAssemblyMemoryPrototype* create(VM&amp;, JSGlobalObject*, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+protected:
+    void finishCreation(VM&amp;);
+
+private:
+    WebAssemblyMemoryPrototype(VM&amp;, Structure*);
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyModuleConstructorcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.cpp (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,103 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebAssemblyModuleConstructor.h&quot;
+
+#include &quot;FunctionPrototype.h&quot;
+#include &quot;JSCInlines.h&quot;
+#include &quot;WebAssemblyModulePrototype.h&quot;
+
+#include &quot;WebAssemblyModuleConstructor.lut.h&quot;
+
+namespace JSC {
+
+const ClassInfo WebAssemblyModuleConstructor::s_info = { &quot;Function&quot;, &amp;Base::s_info, &amp;constructorTableWebAssemblyModule, CREATE_METHOD_TABLE(WebAssemblyModuleConstructor) };
+
+/* Source for WebAssemblyModuleConstructor.lut.h
+ @begin constructorTableWebAssemblyModule
+ @end
+ */
+
+static EncodedJSValue JSC_HOST_CALL constructJSWebAssemblyModule(ExecState* state)
+{
+    VM&amp; vm = state-&gt;vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+    return JSValue::encode(throwException(state, scope, createError(state, ASCIILiteral(&quot;WebAssembly doesn't yet implement the Module constructor property&quot;))));
+}
+
+static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyModule(ExecState* state)
+{
+    VM&amp; vm = state-&gt;vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(state, scope, &quot;WebAssembly.Module&quot;));
+}
+
+WebAssemblyModuleConstructor* WebAssemblyModuleConstructor::create(VM&amp; vm, Structure* structure, WebAssemblyModulePrototype* thisPrototype, Structure* thisStructure)
+{
+    auto* constructor = new (NotNull, allocateCell&lt;WebAssemblyModuleConstructor&gt;(vm.heap)) WebAssemblyModuleConstructor(vm, structure);
+    constructor-&gt;finishCreation(vm, thisPrototype, thisStructure);
+    return constructor;
+}
+
+Structure* WebAssemblyModuleConstructor::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+void WebAssemblyModuleConstructor::finishCreation(VM&amp; vm, WebAssemblyModulePrototype* prototype, Structure* structure)
+{
+    Base::finishCreation(vm, ASCIILiteral(&quot;Module&quot;));
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;prototype, prototype, DontEnum | DontDelete | ReadOnly);
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;length, jsNumber(1), ReadOnly | DontEnum | DontDelete);
+    m_ModuleStructure.set(vm, this, structure);
+}
+
+WebAssemblyModuleConstructor::WebAssemblyModuleConstructor(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+ConstructType WebAssemblyModuleConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
+{
+    constructData.native.function = constructJSWebAssemblyModule;
+    return ConstructType::Host;
+}
+
+CallType WebAssemblyModuleConstructor::getCallData(JSCell*, CallData&amp; callData)
+{
+    callData.native.function = callJSWebAssemblyModule;
+    return CallType::Host;
+}
+
+void WebAssemblyModuleConstructor::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
+{
+    auto* thisObject = jsCast&lt;WebAssemblyModuleConstructor*&gt;(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+    Base::visitChildren(thisObject, visitor);
+    visitor.append(&amp;thisObject-&gt;m_ModuleStructure);
+}
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyModuleConstructorhfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;InternalFunction.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class WebAssemblyModulePrototype;
+
+class WebAssemblyModuleConstructor : public InternalFunction {
+public:
+    typedef InternalFunction Base;
+    static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
+
+    static WebAssemblyModuleConstructor* create(VM&amp;, Structure*, WebAssemblyModulePrototype*, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+    Structure* ModuleStructure() const { return m_ModuleStructure.get(); }
+
+protected:
+    void finishCreation(VM&amp;, WebAssemblyModulePrototype*, Structure*);
+
+private:
+    WebAssemblyModuleConstructor(VM&amp;, Structure*);
+    static ConstructType getConstructData(JSCell*, ConstructData&amp;);
+    static CallType getCallData(JSCell*, CallData&amp;);
+    static void visitChildren(JSCell*, SlotVisitor&amp;);
+
+    WriteBarrier&lt;Structure&gt; m_ModuleStructure;
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyModulePrototypecppfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.cpp (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,65 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebAssemblyModulePrototype.h&quot;
+
+#include &quot;FunctionPrototype.h&quot;
+#include &quot;JSCInlines.h&quot;
+
+#include &quot;WebAssemblyModulePrototype.lut.h&quot;
+
+namespace JSC {
+
+const ClassInfo WebAssemblyModulePrototype::s_info = { &quot;WebAssembly.Module.prototype&quot;, &amp;Base::s_info, &amp;prototypeTableWebAssemblyModule, CREATE_METHOD_TABLE(WebAssemblyModulePrototype) };
+
+/* Source for WebAssemblyModulePrototype.lut.h
+ @begin prototypeTableWebAssemblyModule
+ @end
+ */
+
+WebAssemblyModulePrototype* WebAssemblyModulePrototype::create(VM&amp; vm, JSGlobalObject*, Structure* structure)
+{
+    auto* object = new (NotNull, allocateCell&lt;WebAssemblyModulePrototype&gt;(vm.heap)) WebAssemblyModulePrototype(vm, structure);
+    object-&gt;finishCreation(vm);
+    return object;
+}
+
+Structure* WebAssemblyModulePrototype::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+void WebAssemblyModulePrototype::finishCreation(VM&amp; vm)
+{
+    Base::finishCreation(vm);
+}
+
+WebAssemblyModulePrototype::WebAssemblyModulePrototype(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyModulePrototypehfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;JSDestructibleObject.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class WebAssemblyModulePrototype : public JSNonFinalObject {
+public:
+    typedef JSNonFinalObject Base;
+    static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
+
+    static WebAssemblyModulePrototype* create(VM&amp;, JSGlobalObject*, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+protected:
+    void finishCreation(VM&amp;);
+
+private:
+    WebAssemblyModulePrototype(VM&amp;, Structure*);
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyRuntimeErrorConstructorcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorConstructor.cpp (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorConstructor.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorConstructor.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,103 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebAssemblyRuntimeErrorConstructor.h&quot;
+
+#include &quot;FunctionPrototype.h&quot;
+#include &quot;JSCInlines.h&quot;
+#include &quot;WebAssemblyRuntimeErrorPrototype.h&quot;
+
+#include &quot;WebAssemblyRuntimeErrorConstructor.lut.h&quot;
+
+namespace JSC {
+
+const ClassInfo WebAssemblyRuntimeErrorConstructor::s_info = { &quot;Function&quot;, &amp;Base::s_info, &amp;constructorTableWebAssemblyRuntimeError, CREATE_METHOD_TABLE(WebAssemblyRuntimeErrorConstructor) };
+
+/* Source for WebAssemblyRuntimeErrorConstructor.lut.h
+ @begin constructorTableWebAssemblyRuntimeError
+ @end
+ */
+
+static EncodedJSValue JSC_HOST_CALL constructJSWebAssemblyRuntimeError(ExecState* state)
+{
+    VM&amp; vm = state-&gt;vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+    return JSValue::encode(throwException(state, scope, createError(state, ASCIILiteral(&quot;WebAssembly doesn't yet implement the RuntimeError constructor property&quot;))));
+}
+
+static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyRuntimeError(ExecState* state)
+{
+    VM&amp; vm = state-&gt;vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(state, scope, &quot;WebAssembly.RuntimeError&quot;));
+}
+
+WebAssemblyRuntimeErrorConstructor* WebAssemblyRuntimeErrorConstructor::create(VM&amp; vm, Structure* structure, WebAssemblyRuntimeErrorPrototype* thisPrototype, Structure* thisStructure)
+{
+    auto* constructor = new (NotNull, allocateCell&lt;WebAssemblyRuntimeErrorConstructor&gt;(vm.heap)) WebAssemblyRuntimeErrorConstructor(vm, structure);
+    constructor-&gt;finishCreation(vm, thisPrototype, thisStructure);
+    return constructor;
+}
+
+Structure* WebAssemblyRuntimeErrorConstructor::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+void WebAssemblyRuntimeErrorConstructor::finishCreation(VM&amp; vm, WebAssemblyRuntimeErrorPrototype* prototype, Structure* structure)
+{
+    Base::finishCreation(vm, ASCIILiteral(&quot;RuntimeError&quot;));
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;prototype, prototype, DontEnum | DontDelete | ReadOnly);
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;length, jsNumber(1), ReadOnly | DontEnum | DontDelete);
+    m_RuntimeErrorStructure.set(vm, this, structure);
+}
+
+WebAssemblyRuntimeErrorConstructor::WebAssemblyRuntimeErrorConstructor(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+ConstructType WebAssemblyRuntimeErrorConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
+{
+    constructData.native.function = constructJSWebAssemblyRuntimeError;
+    return ConstructType::Host;
+}
+
+CallType WebAssemblyRuntimeErrorConstructor::getCallData(JSCell*, CallData&amp; callData)
+{
+    callData.native.function = callJSWebAssemblyRuntimeError;
+    return CallType::Host;
+}
+
+void WebAssemblyRuntimeErrorConstructor::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
+{
+    auto* thisObject = jsCast&lt;WebAssemblyRuntimeErrorConstructor*&gt;(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+    Base::visitChildren(thisObject, visitor);
+    visitor.append(&amp;thisObject-&gt;m_RuntimeErrorStructure);
+}
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyRuntimeErrorConstructorhfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorConstructor.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorConstructor.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorConstructor.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;InternalFunction.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class WebAssemblyRuntimeErrorPrototype;
+
+class WebAssemblyRuntimeErrorConstructor : public InternalFunction {
+public:
+    typedef InternalFunction Base;
+    static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
+
+    static WebAssemblyRuntimeErrorConstructor* create(VM&amp;, Structure*, WebAssemblyRuntimeErrorPrototype*, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+    Structure* RuntimeErrorStructure() const { return m_RuntimeErrorStructure.get(); }
+
+protected:
+    void finishCreation(VM&amp;, WebAssemblyRuntimeErrorPrototype*, Structure*);
+
+private:
+    WebAssemblyRuntimeErrorConstructor(VM&amp;, Structure*);
+    static ConstructType getConstructData(JSCell*, ConstructData&amp;);
+    static CallType getCallData(JSCell*, CallData&amp;);
+    static void visitChildren(JSCell*, SlotVisitor&amp;);
+
+    WriteBarrier&lt;Structure&gt; m_RuntimeErrorStructure;
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyRuntimeErrorPrototypecppfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.cpp (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,65 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebAssemblyRuntimeErrorPrototype.h&quot;
+
+#include &quot;FunctionPrototype.h&quot;
+#include &quot;JSCInlines.h&quot;
+
+#include &quot;WebAssemblyRuntimeErrorPrototype.lut.h&quot;
+
+namespace JSC {
+
+const ClassInfo WebAssemblyRuntimeErrorPrototype::s_info = { &quot;WebAssembly.RuntimeError.prototype&quot;, &amp;Base::s_info, &amp;prototypeTableWebAssemblyRuntimeError, CREATE_METHOD_TABLE(WebAssemblyRuntimeErrorPrototype) };
+
+/* Source for WebAssemblyRuntimeErrorPrototype.lut.h
+ @begin prototypeTableWebAssemblyRuntimeError
+ @end
+ */
+
+WebAssemblyRuntimeErrorPrototype* WebAssemblyRuntimeErrorPrototype::create(VM&amp; vm, JSGlobalObject*, Structure* structure)
+{
+    auto* object = new (NotNull, allocateCell&lt;WebAssemblyRuntimeErrorPrototype&gt;(vm.heap)) WebAssemblyRuntimeErrorPrototype(vm, structure);
+    object-&gt;finishCreation(vm);
+    return object;
+}
+
+Structure* WebAssemblyRuntimeErrorPrototype::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+void WebAssemblyRuntimeErrorPrototype::finishCreation(VM&amp; vm)
+{
+    Base::finishCreation(vm);
+}
+
+WebAssemblyRuntimeErrorPrototype::WebAssemblyRuntimeErrorPrototype(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyRuntimeErrorPrototypehfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;JSDestructibleObject.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class WebAssemblyRuntimeErrorPrototype : public JSNonFinalObject {
+public:
+    typedef JSNonFinalObject Base;
+    static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
+
+    static WebAssemblyRuntimeErrorPrototype* create(VM&amp;, JSGlobalObject*, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+protected:
+    void finishCreation(VM&amp;);
+
+private:
+    WebAssemblyRuntimeErrorPrototype(VM&amp;, Structure*);
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyTableConstructorcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.cpp (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,103 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebAssemblyTableConstructor.h&quot;
+
+#include &quot;FunctionPrototype.h&quot;
+#include &quot;JSCInlines.h&quot;
+#include &quot;WebAssemblyTablePrototype.h&quot;
+
+#include &quot;WebAssemblyTableConstructor.lut.h&quot;
+
+namespace JSC {
+
+const ClassInfo WebAssemblyTableConstructor::s_info = { &quot;Function&quot;, &amp;Base::s_info, &amp;constructorTableWebAssemblyTable, CREATE_METHOD_TABLE(WebAssemblyTableConstructor) };
+
+/* Source for WebAssemblyTableConstructor.lut.h
+ @begin constructorTableWebAssemblyTable
+ @end
+ */
+
+static EncodedJSValue JSC_HOST_CALL constructJSWebAssemblyTable(ExecState* state)
+{
+    VM&amp; vm = state-&gt;vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+    return JSValue::encode(throwException(state, scope, createError(state, ASCIILiteral(&quot;WebAssembly doesn't yet implement the Table constructor property&quot;))));
+}
+
+static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyTable(ExecState* state)
+{
+    VM&amp; vm = state-&gt;vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(state, scope, &quot;WebAssembly.Table&quot;));
+}
+
+WebAssemblyTableConstructor* WebAssemblyTableConstructor::create(VM&amp; vm, Structure* structure, WebAssemblyTablePrototype* thisPrototype, Structure* thisStructure)
+{
+    auto* constructor = new (NotNull, allocateCell&lt;WebAssemblyTableConstructor&gt;(vm.heap)) WebAssemblyTableConstructor(vm, structure);
+    constructor-&gt;finishCreation(vm, thisPrototype, thisStructure);
+    return constructor;
+}
+
+Structure* WebAssemblyTableConstructor::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+void WebAssemblyTableConstructor::finishCreation(VM&amp; vm, WebAssemblyTablePrototype* prototype, Structure* structure)
+{
+    Base::finishCreation(vm, ASCIILiteral(&quot;Table&quot;));
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;prototype, prototype, DontEnum | DontDelete | ReadOnly);
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;length, jsNumber(1), ReadOnly | DontEnum | DontDelete);
+    m_TableStructure.set(vm, this, structure);
+}
+
+WebAssemblyTableConstructor::WebAssemblyTableConstructor(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+ConstructType WebAssemblyTableConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
+{
+    constructData.native.function = constructJSWebAssemblyTable;
+    return ConstructType::Host;
+}
+
+CallType WebAssemblyTableConstructor::getCallData(JSCell*, CallData&amp; callData)
+{
+    callData.native.function = callJSWebAssemblyTable;
+    return CallType::Host;
+}
+
+void WebAssemblyTableConstructor::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
+{
+    auto* thisObject = jsCast&lt;WebAssemblyTableConstructor*&gt;(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+    Base::visitChildren(thisObject, visitor);
+    visitor.append(&amp;thisObject-&gt;m_TableStructure);
+}
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyTableConstructorhfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;InternalFunction.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class WebAssemblyTablePrototype;
+
+class WebAssemblyTableConstructor : public InternalFunction {
+public:
+    typedef InternalFunction Base;
+    static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
+
+    static WebAssemblyTableConstructor* create(VM&amp;, Structure*, WebAssemblyTablePrototype*, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+    Structure* TableStructure() const { return m_TableStructure.get(); }
+
+protected:
+    void finishCreation(VM&amp;, WebAssemblyTablePrototype*, Structure*);
+
+private:
+    WebAssemblyTableConstructor(VM&amp;, Structure*);
+    static ConstructType getConstructData(JSCell*, ConstructData&amp;);
+    static CallType getCallData(JSCell*, CallData&amp;);
+    static void visitChildren(JSCell*, SlotVisitor&amp;);
+
+    WriteBarrier&lt;Structure&gt; m_TableStructure;
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyTablePrototypecppfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.cpp (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.cpp                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.cpp        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,65 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebAssemblyTablePrototype.h&quot;
+
+#include &quot;FunctionPrototype.h&quot;
+#include &quot;JSCInlines.h&quot;
+
+#include &quot;WebAssemblyTablePrototype.lut.h&quot;
+
+namespace JSC {
+
+const ClassInfo WebAssemblyTablePrototype::s_info = { &quot;WebAssembly.Table.prototype&quot;, &amp;Base::s_info, &amp;prototypeTableWebAssemblyTable, CREATE_METHOD_TABLE(WebAssemblyTablePrototype) };
+
+/* Source for WebAssemblyTablePrototype.lut.h
+ @begin prototypeTableWebAssemblyTable
+ @end
+ */
+
+WebAssemblyTablePrototype* WebAssemblyTablePrototype::create(VM&amp; vm, JSGlobalObject*, Structure* structure)
+{
+    auto* object = new (NotNull, allocateCell&lt;WebAssemblyTablePrototype&gt;(vm.heap)) WebAssemblyTablePrototype(vm, structure);
+    object-&gt;finishCreation(vm);
+    return object;
+}
+
+Structure* WebAssemblyTablePrototype::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
+{
+    return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+}
+
+void WebAssemblyTablePrototype::finishCreation(VM&amp; vm)
+{
+    Base::finishCreation(vm);
+}
+
+WebAssemblyTablePrototype::WebAssemblyTablePrototype(VM&amp; vm, Structure* structure)
+    : Base(vm, structure)
+{
+}
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsWebAssemblyTablePrototypehfromrev207571trunkSourceJavaScriptCorewasmWebAssemblyObjecth"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.h (from rev 207571, trunk/Source/JavaScriptCore/wasm/WebAssemblyObject.h) (0 => 207572)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.h                                (rev 0)
+++ trunk/Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.h        2016-10-19 22:11:11 UTC (rev 207572)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;JSDestructibleObject.h&quot;
+#include &quot;JSObject.h&quot;
+
+namespace JSC {
+
+class WebAssemblyTablePrototype : public JSNonFinalObject {
+public:
+    typedef JSNonFinalObject Base;
+    static const unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
+
+    static WebAssemblyTablePrototype* create(VM&amp;, JSGlobalObject*, Structure*);
+    static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue);
+
+    DECLARE_INFO;
+
+protected:
+    void finishCreation(VM&amp;);
+
+private:
+    WebAssemblyTablePrototype(VM&amp;, Structure*);
+};
+
+} // namespace JSC
</ins></span></pre>
</div>
</div>

</body>
</html>