WebAssembly: stop supporting 0xD
authorjfbastien@apple.com <jfbastien@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 11 May 2017 07:56:34 +0000 (07:56 +0000)
committerjfbastien@apple.com <jfbastien@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 11 May 2017 07:56:34 +0000 (07:56 +0000)
https://bugs.webkit.org/show_bug.cgi?id=168788
<rdar://problem/31880922>

Reviewed by Saam Barati.

JSTests:

Test that only version 1 is supported.

* wasm/js-api/version.js: Added.

Source/JavaScriptCore:

Only version 1 is supported by other browsers, and there shouldn't
be any 0xD binaries in the wild anymore.

* wasm/WasmModuleParser.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@216672 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JSTests/ChangeLog
JSTests/wasm/js-api/version.js [new file with mode: 0644]
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/wasm/WasmModuleParser.cpp

index 8c84af6..53521e9 100644 (file)
@@ -1,3 +1,15 @@
+2017-05-11  JF Bastien  <jfbastien@apple.com>
+
+        WebAssembly: stop supporting 0xD
+        https://bugs.webkit.org/show_bug.cgi?id=168788
+        <rdar://problem/31880922>
+
+        Reviewed by Saam Barati.
+
+        Test that only version 1 is supported.
+
+        * wasm/js-api/version.js: Added.
+
 2017-05-10  JF Bastien  <jfbastien@apple.com>
 
         WebAssemby: builder doesn't do Memory section maximum correctly
diff --git a/JSTests/wasm/js-api/version.js b/JSTests/wasm/js-api/version.js
new file mode 100644 (file)
index 0000000..81cd7ff
--- /dev/null
@@ -0,0 +1,9 @@
+import * as assert from '../assert.js';
+import * as utilities from '../utilities.js';
+
+for (let version = 0; version < 256; ++version) {
+    if (version === 1)
+        continue;
+    const emptyModuleArray = Uint8Array.of(0x0, 0x61, 0x73, 0x6d, version, 0x00, 0x00, 0x00);
+    assert.throws(() => new WebAssembly.Module(emptyModuleArray), WebAssembly.CompileError, `WebAssembly.Module doesn't parse at byte 8 / 8: unexpected version number ${version} expected 1`);
+}
index 1b14bde..b0d25ab 100644 (file)
@@ -1,3 +1,16 @@
+2017-05-11  JF Bastien  <jfbastien@apple.com>
+
+        WebAssembly: stop supporting 0xD
+        https://bugs.webkit.org/show_bug.cgi?id=168788
+        <rdar://problem/31880922>
+
+        Reviewed by Saam Barati.
+
+        Only version 1 is supported by other browsers, and there shouldn't
+        be any 0xD binaries in the wild anymore.
+
+        * wasm/WasmModuleParser.cpp:
+
 2017-05-09  Sam Weinig  <sam@webkit.org>
 
         Remove support for legacy Notifications
index 4cde165..7a6a1f5 100644 (file)
@@ -53,8 +53,7 @@ auto ModuleParser::parse() -> Result
     WASM_PARSER_FAIL_IF(length() < minSize, "expected a module of at least ", minSize, " bytes");
     WASM_PARSER_FAIL_IF(!consumeCharacter(0) || !consumeString("asm"), "modules doesn't start with '\\0asm'");
     WASM_PARSER_FAIL_IF(!parseUInt32(versionNumber), "can't parse version number");
-    if (versionNumber != 0xD) // FIXME Stop supporting version 0xD temporarily. https://bugs.webkit.org/show_bug.cgi?id=168788
-        WASM_PARSER_FAIL_IF(versionNumber != expectedVersionNumber, "unexpected version number ", versionNumber, " expected ", expectedVersionNumber);
+    WASM_PARSER_FAIL_IF(versionNumber != expectedVersionNumber, "unexpected version number ", versionNumber, " expected ", expectedVersionNumber);
 
     Section previousSection = Section::Custom;
     while (m_offset < length()) {