<!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>[205662] trunk/JSTests</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/205662">205662</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-09-08 14:30:17 -0700 (Thu, 08 Sep 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Delete older WebAssembly tests
https://bugs.webkit.org/show_bug.cgi?id=161758
Patch by JF Bastien <jfbastien@apple.com> on 2016-09-08
Reviewed by Filip Pizlo.
They're not running, rely on the older polyfill prototype, and the older code was deleted in: https://trac.webkit.org/changeset/204180
* stress/wasm-arithmetic-float32.js: Removed.
* stress/wasm-arithmetic-float64.js: Removed.
* stress/wasm-arithmetic-int32.js: Removed.
* stress/wasm-calls.js: Removed.
* stress/wasm-comma.js: Removed.
* stress/wasm-control-flow.js: Removed.
* stress/wasm-globals.js: Removed.
* stress/wasm-linear-memory.js: Removed.
* stress/wasm-locals.js: Removed.
* stress/wasm-relational.js: Removed.
* stress/wasm-type-conversion.js: Removed.
* stress/wasm/arithmetic-float32.wasm: Removed.
* stress/wasm/arithmetic-float64.wasm: Removed.
* stress/wasm/arithmetic-int32.wasm: Removed.
* stress/wasm/calls.wasm: Removed.
* stress/wasm/comma.wasm: Removed.
* stress/wasm/control-flow.wasm: Removed.
* stress/wasm/globals.wasm: Removed.
* stress/wasm/linear-memory.wasm: Removed.
* stress/wasm/locals.wasm: Removed.
* stress/wasm/relational.wasm: Removed.
* stress/wasm/type-conversion.wasm: Removed.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkJSTestsChangeLog">trunk/JSTests/ChangeLog</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li>trunk/JSTests/stress/wasm/</li>
<li><a href="#trunkJSTestsstresswasmarithmeticfloat32js">trunk/JSTests/stress/wasm-arithmetic-float32.js</a></li>
<li><a href="#trunkJSTestsstresswasmarithmeticfloat64js">trunk/JSTests/stress/wasm-arithmetic-float64.js</a></li>
<li><a href="#trunkJSTestsstresswasmarithmeticint32js">trunk/JSTests/stress/wasm-arithmetic-int32.js</a></li>
<li><a href="#trunkJSTestsstresswasmcallsjs">trunk/JSTests/stress/wasm-calls.js</a></li>
<li><a href="#trunkJSTestsstresswasmcommajs">trunk/JSTests/stress/wasm-comma.js</a></li>
<li><a href="#trunkJSTestsstresswasmcontrolflowjs">trunk/JSTests/stress/wasm-control-flow.js</a></li>
<li><a href="#trunkJSTestsstresswasmglobalsjs">trunk/JSTests/stress/wasm-globals.js</a></li>
<li><a href="#trunkJSTestsstresswasmlinearmemoryjs">trunk/JSTests/stress/wasm-linear-memory.js</a></li>
<li><a href="#trunkJSTestsstresswasmlocalsjs">trunk/JSTests/stress/wasm-locals.js</a></li>
<li><a href="#trunkJSTestsstresswasmrelationaljs">trunk/JSTests/stress/wasm-relational.js</a></li>
<li><a href="#trunkJSTestsstresswasmtypeconversionjs">trunk/JSTests/stress/wasm-type-conversion.js</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkJSTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/ChangeLog (205661 => 205662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/ChangeLog        2016-09-08 21:16:38 UTC (rev 205661)
+++ trunk/JSTests/ChangeLog        2016-09-08 21:30:17 UTC (rev 205662)
</span><span class="lines">@@ -1,3 +1,35 @@
</span><ins>+2016-09-08 JF Bastien <jfbastien@apple.com>
+
+ Delete older WebAssembly tests
+ https://bugs.webkit.org/show_bug.cgi?id=161758
+
+ Reviewed by Filip Pizlo.
+
+ They're not running, rely on the older polyfill prototype, and the older code was deleted in: https://trac.webkit.org/changeset/204180
+
+ * stress/wasm-arithmetic-float32.js: Removed.
+ * stress/wasm-arithmetic-float64.js: Removed.
+ * stress/wasm-arithmetic-int32.js: Removed.
+ * stress/wasm-calls.js: Removed.
+ * stress/wasm-comma.js: Removed.
+ * stress/wasm-control-flow.js: Removed.
+ * stress/wasm-globals.js: Removed.
+ * stress/wasm-linear-memory.js: Removed.
+ * stress/wasm-locals.js: Removed.
+ * stress/wasm-relational.js: Removed.
+ * stress/wasm-type-conversion.js: Removed.
+ * stress/wasm/arithmetic-float32.wasm: Removed.
+ * stress/wasm/arithmetic-float64.wasm: Removed.
+ * stress/wasm/arithmetic-int32.wasm: Removed.
+ * stress/wasm/calls.wasm: Removed.
+ * stress/wasm/comma.wasm: Removed.
+ * stress/wasm/control-flow.wasm: Removed.
+ * stress/wasm/globals.wasm: Removed.
+ * stress/wasm/linear-memory.wasm: Removed.
+ * stress/wasm/locals.wasm: Removed.
+ * stress/wasm/relational.wasm: Removed.
+ * stress/wasm/type-conversion.wasm: Removed.
+
</ins><span class="cx"> 2016-09-08 Per Arne Vollan <pvollan@apple.com>
</span><span class="cx">
</span><span class="cx"> [Win] Exception fuzz tests fail
</span></span></pre></div>
<a id="trunkJSTestsstresswasmarithmeticfloat32js"></a>
<div class="delfile"><h4>Deleted: trunk/JSTests/stress/wasm-arithmetic-float32.js (205661 => 205662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/wasm-arithmetic-float32.js        2016-09-08 21:16:38 UTC (rev 205661)
+++ trunk/JSTests/stress/wasm-arithmetic-float32.js        2016-09-08 21:30:17 UTC (rev 205662)
</span><span class="lines">@@ -1,105 +0,0 @@
</span><del>-//@ skip
-
-function shouldBe(actual, expected) {
- if (actual !== expected)
- throw new Error('bad value: ' + actual);
-}
-
-/*
-wasm/arithmetic-float32.wasm is generated by pack-asmjs <https://github.com/WebAssembly/polyfill-prototype-1> from the following script:
-
-function asmModule(global, env, buffer) {
- "use asm";
-
- var fround = global.Math.fround;
- var abs = global.Math.abs;
- var ceil = global.Math.ceil;
- var floor = global.Math.floor;
- var sqrt = global.Math.sqrt;
-
- function number() {
- return fround(0.5);
- }
-
- function negate(x) {
- x = fround(x);
- return fround(-x);
- }
-
- function add(x, y) {
- x = fround(x);
- y = fround(y);
- return fround(x + y);
- }
-
- function subtract(x, y) {
- x = fround(x);
- y = fround(y);
- return fround(x - y);
- }
-
- function multiply(x, y) {
- x = fround(x);
- y = fround(y);
- return fround(x * y);
- }
-
- function divide(x, y) {
- x = fround(x);
- y = fround(y);
- return fround(x / y);
- }
-
- function absolute(x) {
- x = fround(x);
- return fround(abs(x));
- }
-
- function ceilNumber(x) {
- x = fround(x);
- return fround(ceil(x));
- }
-
- function floorNumber(x) {
- x = fround(x);
- return fround(floor(x));
- }
-
- function squareRoot(x) {
- x = fround(x);
- return fround(sqrt(x));
- }
-
- return {
- number: number,
- negate: negate,
- add: add,
- subtract: subtract,
- multiply: multiply,
- divide: divide,
- absolute: absolute,
- ceilNumber: ceilNumber,
- floorNumber: floorNumber,
- squareRoot: squareRoot,
- };
-}
-*/
-
-var module = loadWebAssembly("wasm/arithmetic-float32.wasm");
-
-shouldBe(module.number(), 0.5);
-shouldBe(module.negate(0.1), -0.10000000149011612);
-shouldBe(module.add(0.1, 0.5), 0.6000000238418579);
-shouldBe(isNaN(module.add(0.1, NaN)), true);
-shouldBe(module.add(0.1, Infinity), Infinity);
-shouldBe(isNaN(module.add(Infinity, -Infinity)), true);
-shouldBe(module.subtract(0.1, 0.5), -0.4000000059604645);
-shouldBe(module.multiply(0.1, 0.5), 0.05000000074505806);
-shouldBe(module.divide(0.1, 0.5), 0.20000000298023224);
-shouldBe(module.divide(0.1, 0), Infinity);
-shouldBe(module.divide(0.1, -0), -Infinity);
-shouldBe(module.absolute(-4.2), 4.199999809265137);
-shouldBe(module.absolute(4.2), 4.199999809265137);
-shouldBe(module.ceilNumber(4.2), 5);
-shouldBe(module.floorNumber(4.2), 4);
-shouldBe(module.squareRoot(0.09), 0.30000001192092896);
</del></span></pre></div>
<a id="trunkJSTestsstresswasmarithmeticfloat64js"></a>
<div class="delfile"><h4>Deleted: trunk/JSTests/stress/wasm-arithmetic-float64.js (205661 => 205662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/wasm-arithmetic-float64.js        2016-09-08 21:16:38 UTC (rev 205661)
+++ trunk/JSTests/stress/wasm-arithmetic-float64.js        2016-09-08 21:30:17 UTC (rev 205662)
</span><span class="lines">@@ -1,215 +0,0 @@
</span><del>-//@ skip
-
-function shouldBe(actual, expected) {
- if (actual !== expected)
- throw new Error('bad value: ' + actual);
-}
-
-/*
-wasm/arithmetic-float64.wasm is generated by pack-asmjs <https://github.com/WebAssembly/polyfill-prototype-1> from the following script:
-
-function asmModule(global, env, buffer) {
- "use asm";
-
- var abs = global.Math.abs;
- var ceil = global.Math.ceil;
- var floor = global.Math.floor;
- var sqrt = global.Math.sqrt;
- var cos = global.Math.cos;
- var sin = global.Math.sin;
- var tan = global.Math.tan;
- var acos = global.Math.acos;
- var asin = global.Math.asin;
- var atan = global.Math.atan;
- var atan2 = global.Math.atan2;
- var exp = global.Math.exp;
- var log = global.Math.log;
- var pow = global.Math.pow;
- var min = global.Math.min;
- var max = global.Math.max;
-
- function number() {
- return 4.2;
- }
-
- function negate(x) {
- x = +x;
- return -x;
- }
-
- function add(x, y) {
- x = +x;
- y = +y;
- return x + y;
- }
-
- function subtract(x, y) {
- x = +x;
- y = +y;
- return x - y;
- }
-
- function multiply(x, y) {
- x = +x;
- y = +y;
- return x * y;
- }
-
- function divide(x, y) {
- x = +x;
- y = +y;
- return x / y;
- }
-
- function modulo(x, y) {
- x = +x;
- y = +y;
- return x % y;
- }
-
- function absolute(x) {
- x = +x;
- return abs(x);
- }
-
- function ceilNumber(x) {
- x = +x;
- return ceil(x);
- }
-
- function floorNumber(x) {
- x = +x;
- return floor(x);
- }
-
- function squareRoot(x) {
- x = +x;
- return sqrt(x);
- }
-
- function cosine(x) {
- x = +x;
- return cos(x);
- }
-
- function sine(x) {
- x = +x;
- return sin(x);
- }
-
- function tangent(x) {
- x = +x;
- return tan(x);
- }
-
- function arccosine(x) {
- x = +x;
- return acos(x);
- }
-
- function arcsine(x) {
- x = +x;
- return asin(x);
- }
-
- function arctangent(x) {
- x = +x;
- return atan(x);
- }
-
- function arctangent2(x, y) {
- x = +x;
- y = +y;
- return atan2(x, y);
- }
-
- function exponential(x) {
- x = +x;
- return exp(x);
- }
-
- function logarithm(x) {
- x = +x;
- return log(x);
- }
-
- function power(x, y) {
- x = +x;
- y = +y;
- return pow(x, y);
- }
-
- function minimum(x, y, z) {
- x = +x;
- y = +y;
- z = +z;
- return min(x, y, z);
- }
-
- function maximum(x, y, z) {
- x = +x;
- y = +y;
- z = +z;
- return max(x, y, z);
- }
-
- return {
- number: number,
- negate: negate,
- add: add,
- subtract: subtract,
- multiply: multiply,
- divide: divide,
- modulo: modulo,
- absolute: absolute,
- ceilNumber: ceilNumber,
- floorNumber: floorNumber,
- squareRoot: squareRoot,
- cosine: cosine,
- sine: sine,
- tangent: tangent,
- arccosine: arccosine,
- arcsine: arcsine,
- arctangent: arctangent,
- arctangent2: arctangent2,
- exponential: exponential,
- logarithm: logarithm,
- power: power,
- minimum: minimum,
- maximum: maximum,
- };
-}
-*/
-
-var module = loadWebAssembly("wasm/arithmetic-float64.wasm");
-
-shouldBe(module.number(), 4.2);
-shouldBe(module.negate(0.1), -0.1);
-shouldBe(module.add(0.1, 0.5), 0.6);
-shouldBe(isNaN(module.add(0.1, NaN)), true);
-shouldBe(module.add(0.1, Infinity), Infinity);
-shouldBe(isNaN(module.add(Infinity, -Infinity)), true);
-shouldBe(module.subtract(0.1, 0.5), -0.4);
-shouldBe(module.multiply(0.1, 0.5), 0.05);
-shouldBe(module.divide(0.1, 0.5), 0.2);
-shouldBe(module.divide(0.1, 0), Infinity);
-shouldBe(module.divide(0.1, -0), -Infinity);
-shouldBe(module.modulo(0.1, 0.03), 0.010000000000000009);
-shouldBe(isNaN(module.modulo(0.1, 0)), true);
-shouldBe(module.absolute(-4.2), 4.2);
-shouldBe(module.absolute(4.2), 4.2);
-shouldBe(module.ceilNumber(4.2), 5);
-shouldBe(module.floorNumber(4.2), 4);
-shouldBe(module.squareRoot(0.09), 0.3);
-shouldBe(module.cosine(Math.PI), -1);
-shouldBe(module.sine(Math.PI / 2), 1);
-shouldBe(module.tangent(Math.PI / 4), 0.9999999999999999);
-shouldBe(module.arccosine(-1), Math.PI);
-shouldBe(module.arcsine(1), Math.PI / 2);
-shouldBe(module.arctangent(1), Math.PI / 4);
-shouldBe(module.arctangent2(1, 0), Math.PI / 2);
-shouldBe(module.exponential(1), Math.E);
-shouldBe(module.logarithm(Math.E), 1);
-shouldBe(module.power(4, 1.5), 8);
-shouldBe(module.minimum(0.1, -0.2, 0.3), -0.2);
-shouldBe(module.maximum(0.1, -0.2, 0.3), 0.3);
</del></span></pre></div>
<a id="trunkJSTestsstresswasmarithmeticint32js"></a>
<div class="delfile"><h4>Deleted: trunk/JSTests/stress/wasm-arithmetic-int32.js (205661 => 205662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/wasm-arithmetic-int32.js        2016-09-08 21:16:38 UTC (rev 205661)
+++ trunk/JSTests/stress/wasm-arithmetic-int32.js        2016-09-08 21:30:17 UTC (rev 205662)
</span><span class="lines">@@ -1,220 +0,0 @@
</span><del>-//@ skip
-
-function shouldBe(actual, expected) {
- if (actual !== expected)
- throw new Error('bad value: ' + actual);
-}
-
-function shouldThrow(func, message) {
- var error = null;
- try {
- func();
- } catch (e) {
- error = e;
- }
- if (!error)
- throw new Error("not thrown.");
- if (String(error) !== message)
- throw new Error("bad error: " + String(error));
-}
-
-/*
-wasm/arithmetic-int32.wasm is generated by pack-asmjs <https://github.com/WebAssembly/polyfill-prototype-1> from the following script:
-
-function asmModule(global, env, buffer) {
- "use asm";
-
- var clz32 = global.Math.clz32;
- var imul = global.Math.imul;
- var abs = global.Math.abs;
- var min = global.Math.min;
- var max = global.Math.max;
-
- function negate(x) {
- x = x | 0;
- return (-x) | 0;
- }
-
- function add(x, y) {
- x = x | 0;
- y = y | 0;
- return (x + y) | 0;
- }
-
- function subtract(x, y) {
- x = x | 0;
- y = y | 0;
- return (x - y) | 0;
- }
-
- function multiply(x, y) {
- x = x | 0;
- y = y | 0;
- return imul(x, y) | 0;
- }
-
- function divide(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x | 0) / (y | 0)) | 0;
- }
-
- function unsignedDivide(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x >>> 0) / (y >>> 0)) | 0;
- }
-
- function modulo(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x | 0) % (y | 0)) | 0;
- }
-
- function unsignedModulo(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x >>> 0) % (y >>> 0)) | 0;
- }
-
- function bitNot(x) {
- x = x | 0;
- return ~x;
- }
-
- function bitOr(x, y) {
- x = x | 0;
- y = y | 0;
- return x | y;
- }
-
- function bitAnd(x, y) {
- x = x | 0;
- y = y | 0;
- return x & y;
- }
-
- function bitXor(x, y) {
- x = x | 0;
- y = y | 0;
- return x ^ y;
- }
-
- function leftShift(x, y) {
- x = x | 0;
- y = y | 0;
- return x << y;
- }
-
- function arithmeticRightShift(x, y) {
- x = x | 0;
- y = y | 0;
- return x >> y;
- }
-
- function logicalRightShift(x, y) {
- x = x | 0;
- y = y | 0;
- return (x >>> y) | 0;
- }
-
- function countLeadingZeros(x) {
- x = x | 0;
- return clz32(x);
- }
-
- function logicalNot(x) {
- x = x | 0;
- return (!x) | 0;
- }
-
- function absolute(x) {
- x = x | 0;
- return abs(x | 0) | 0;
- }
-
- function minimum(x, y, z) {
- x = x | 0;
- y = y | 0;
- z = z | 0;
- return min(x | 0, y | 0, z | 0);
- }
-
- function maximum(x, y, z) {
- x = x | 0;
- y = y | 0;
- z = z | 0;
- return max(x | 0, y | 0, z | 0);
- }
-
- return {
- negate: negate,
- add: add,
- subtract: subtract,
- multiply: multiply,
- divide: divide,
- unsignedDivide: unsignedDivide,
- modulo: modulo,
- unsignedModulo: unsignedModulo,
- bitNot: bitNot,
- bitOr: bitOr,
- bitAnd: bitAnd,
- bitXor: bitXor,
- leftShift: leftShift,
- arithmeticRightShift: arithmeticRightShift,
- logicalRightShift: logicalRightShift,
- countLeadingZeros: countLeadingZeros,
- logicalNot: logicalNot,
- absolute: absolute,
- minimum: minimum,
- maximum: maximum,
- };
-}
-*/
-
-var module = loadWebAssembly("wasm/arithmetic-int32.wasm");
-
-shouldBe(module.negate(42), -42);
-shouldBe(module.add(1, 2), 3);
-shouldBe(module.add(2147483647, 1), -2147483648);
-shouldBe(module.subtract(1, 2), -1);
-shouldBe(module.multiply(2, 3), 6);
-shouldBe(module.multiply(-2147483648, -1), -2147483648);
-shouldBe(module.divide(7, 3), 2);
-shouldThrow(() => {
- module.divide(1, 0);
-}, "Error: Division by zero or division overflow.");
-shouldThrow(() => {
- module.divide(-2147483648, -1);
-}, "Error: Division by zero or division overflow.");
-shouldBe(module.unsignedDivide(-1, 2), 2147483647);
-shouldThrow(() => {
- module.unsignedDivide(-1, 0);
-}, "Error: Division by zero or division overflow.");
-shouldBe(module.modulo(7, 3), 1);
-shouldBe(module.modulo(-7, 3), -1);
-shouldThrow(() => {
- module.modulo(1, 0);
-}, "Error: Division by zero or division overflow.");
-shouldThrow(() => {
- module.modulo(-2147483648, -1);
-}, "Error: Division by zero or division overflow.");
-shouldBe(module.unsignedModulo(-1, 100000), 67295);
-shouldThrow(() => {
- module.unsignedModulo(-1, 0);
-}, "Error: Division by zero or division overflow.");
-shouldBe(module.bitNot(1), -2);
-shouldBe(module.bitOr(3, 5), 7);
-shouldBe(module.bitAnd(3, 5), 1);
-shouldBe(module.bitXor(3, 5), 6);
-shouldBe(module.leftShift(1, 16), 65536);
-shouldBe(module.arithmeticRightShift(-1, 16), -1);
-shouldBe(module.logicalRightShift(-1, 16), 65535);
-shouldBe(module.countLeadingZeros(42), 26);
-shouldBe(module.countLeadingZeros(0), 32);
-shouldBe(module.logicalNot(42), 0);
-shouldBe(module.logicalNot(0), 1);
-shouldBe(module.absolute(-42), 42);
-shouldBe(module.absolute(42), 42);
-shouldBe(module.minimum(1, -2, 3), -2);
-shouldBe(module.maximum(1, -2, 3), 3);
</del></span></pre></div>
<a id="trunkJSTestsstresswasmcallsjs"></a>
<div class="delfile"><h4>Deleted: trunk/JSTests/stress/wasm-calls.js (205661 => 205662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/wasm-calls.js        2016-09-08 21:16:38 UTC (rev 205661)
+++ trunk/JSTests/stress/wasm-calls.js        2016-09-08 21:30:17 UTC (rev 205662)
</span><span class="lines">@@ -1,130 +0,0 @@
</span><del>-//@ skip
-
-function shouldBe(actual, expected) {
- if (actual !== expected)
- throw new Error('bad value: ' + actual);
-}
-
-/*
-wasm/calls.wasm is generated by pack-asmjs <https://github.com/WebAssembly/polyfill-prototype-1> from the following script:
-
-function asmModule(global, imports, buffer) {
- "use asm";
-
- var imul = global.Math.imul;
- var sum = imports.sum;
- var max = imports.max;
- var g = 0;
-
- function fibonacci(x) {
- x = x | 0;
- if ((x | 0) <= 1)
- return 1;
- return ((fibonacci((x - 1) | 0) | 0) + (fibonacci((x - 2) | 0) | 0)) | 0;
- }
-
- function gcd(x, y) {
- x = x | 0;
- y = y | 0;
- if ((y | 0) == 0)
- return x | 0;
- return gcd(y, ((x | 0) % (y | 0)) | 0) | 0;
- }
-
- function lcm(x, y) {
- x = x | 0;
- y = y | 0;
- return (imul(x, y) / (gcd(x, y) | 0)) | 0;
- }
-
- function setG(x) {
- x = x | 0;
- g = x;
- }
-
- function testCallStatement(x) {
- x = x | 0;
- setG(x);
- return g | 0;
- }
-
- function addSubMulDiv(i, x, y) {
- i = i | 0;
- x = x | 0;
- y = y | 0;
- return addSubMulDivTable[i & 3](x, y) | 0;
- }
-
- function add(x, y) {
- x = x | 0;
- y = y | 0;
- return (x + y) | 0;
- }
-
- function sub(x, y) {
- x = x | 0;
- y = y | 0;
- return (x - y) | 0;
- }
-
- function mul(x, y) {
- x = x | 0;
- y = y | 0;
- return imul(x, y);
- }
-
- function div(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x | 0) / (y | 0)) | 0;
- }
-
- function callSum(x, y) {
- x = x | 0;
- y = y | 0;
- return sum(x | 0, y | 0) | 0;
- }
-
- function callMax(x, y) {
- x = x | 0;
- y = y | 0;
- return max(x | 0, y | 0) | 0;
- }
-
- var addSubMulDivTable = [add, sub, mul, div];
-
- return {
- fibonacci: fibonacci,
- gcd: gcd,
- lcm: lcm,
- testCallStatement: testCallStatement,
-
- addSubMulDiv: addSubMulDiv,
-
- callSum: callSum,
- callMax: callMax,
- };
-}
-*/
-
-var imports = {
- sum: (x, y) => x + y,
- max: Math.max,
-};
-var module = loadWebAssembly("wasm/calls.wasm", imports);
-
-shouldBe(module.fibonacci(10), 89);
-shouldBe(module.gcd(15, 25), 5);
-shouldBe(module.lcm(15, 25), 75);
-shouldBe(module.testCallStatement(42), 42);
-
-shouldBe(module.addSubMulDiv(0, 6, 2), 8);
-shouldBe(module.addSubMulDiv(1, 6, 2), 4);
-shouldBe(module.addSubMulDiv(2, 6, 2), 12);
-shouldBe(module.addSubMulDiv(3, 6, 2), 3);
-shouldBe(module.addSubMulDiv(4, 6, 2), 8);
-shouldBe(module.addSubMulDiv(10, 6, 2), 12);
-shouldBe(module.addSubMulDiv(-1, 6, 2), 3);
-
-shouldBe(module.callSum(1, 2), 3);
-shouldBe(module.callMax(1, 2), 2);
</del></span></pre></div>
<a id="trunkJSTestsstresswasmcommajs"></a>
<div class="delfile"><h4>Deleted: trunk/JSTests/stress/wasm-comma.js (205661 => 205662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/wasm-comma.js        2016-09-08 21:16:38 UTC (rev 205661)
+++ trunk/JSTests/stress/wasm-comma.js        2016-09-08 21:30:17 UTC (rev 205662)
</span><span class="lines">@@ -1,46 +0,0 @@
</span><del>-//@ skip
-
-function shouldBe(actual, expected) {
- if (actual !== expected)
- throw new Error('bad value: ' + actual);
-}
-
-/*
-wasm/comma.wasm is generated by pack-asmjs <https://github.com/WebAssembly/polyfill-prototype-1> from the following script:
-
-function asmModule(global, env, buffer) {
- "use asm";
-
- var g = 0;
-
- function setG(x) {
- x = x | 0;
- g = x;
- }
-
- function testComma1() {
- return 1, 2, 3, 4;
- }
-
- function testComma2() {
- var x = 0.0;
- return (x = x + 1.0), (x = x * 2.0), +x;
- }
-
- function testComma3() {
- return (g = 0), setG(42), (g | 0);
- }
-
- return {
- testComma1: testComma1,
- testComma2: testComma2,
- testComma3: testComma3,
- };
-}
-*/
-
-var module = loadWebAssembly("wasm/comma.wasm");
-
-shouldBe(module.testComma1(), 4);
-shouldBe(module.testComma2(), 2);
-shouldBe(module.testComma3(), 42);
</del></span></pre></div>
<a id="trunkJSTestsstresswasmcontrolflowjs"></a>
<div class="delfile"><h4>Deleted: trunk/JSTests/stress/wasm-control-flow.js (205661 => 205662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/wasm-control-flow.js        2016-09-08 21:16:38 UTC (rev 205661)
+++ trunk/JSTests/stress/wasm-control-flow.js        2016-09-08 21:30:17 UTC (rev 205662)
</span><span class="lines">@@ -1,326 +0,0 @@
</span><del>-//@ skip
-
-function shouldBe(actual, expected) {
- if (actual !== expected)
- throw new Error('bad value: ' + actual);
-}
-
-/*
-wasm/control-flow.wasm is generated by pack-asmjs <https://github.com/WebAssembly/polyfill-prototype-1> from the following script:
-
-function asmModule(global, env, buffer) {
- "use asm";
-
- function ifTrue() {
- var x = 0;
- x = 5;
- if ((x | 0) > 0)
- return 1;
- return 0;
- }
-
- function ifFalse() {
- var x = 0;
- if ((x | 0) > 0)
- return 1;
- return 0;
- }
-
- function ifElseTrue() {
- var x = 0;
- x = 5;
- if ((x | 0) > 0)
- return 1;
- else
- return 2;
- return 0;
- }
-
- function ifElseFalse() {
- var x = 0;
- if ((x | 0) > 0)
- return 1;
- else
- return 2;
- return 0;
- }
-
- function ifInIf() {
- var x = 0, y = 0;
- x = 1;
- if ((x | 0) == 0) {
- if ((y | 0) == 0)
- return 1;
- else
- return 2;
- } else {
- if ((y | 0) == 0)
- return 3;
- else
- return 4;
- }
- return 0;
- }
-
- function whileLoop() {
- var x = 0, i = 0;
- while ((i | 0) < 5) {
- x = (x + 1) | 0;
- i = (i + 1) | 0;
- }
- return x | 0;
- }
-
- function whileBreak() {
- var x = 0, i = 0;
- while (1) {
- if ((i | 0) == 2)
- break;
- x = (x + 1) | 0;
- i = (i + 1) | 0;
- }
- return x | 0;
- }
-
- function whileContinue() {
- var x = 0, i = 0;
- while ((i | 0) < 5) {
- if ((i | 0) == 2) {
- i = 3;
- continue;
- }
- x = (x + 1) | 0;
- i = (i + 1) | 0;
- }
- return x | 0;
- }
-
- function whileInWhile() {
- var x = 0, i = 0, j = 0;
- while ((i | 0) < 5) {
- j = 0;
- while ((j | 0) < 2) {
- x = (x + 1) | 0;
- j = (j + 1) | 0;
- }
- i = (i + 1) | 0;
- }
- return x | 0;
- }
-
- function doLoop() {
- var x = 0, i = 0;
- do {
- x = (x + 1) | 0;
- i = (i + 1) | 0;
- } while ((i | 0) < 0);
- return x | 0;
- }
-
- function doBreak() {
- var x = 0, i = 0;
- do {
- if ((i | 0) == 2)
- break;
- x = (x + 1) | 0;
- i = (i + 1) | 0;
- } while (1);
- return x | 0;
- }
-
- function doContinue() {
- var x = 0, i = 0;
- do {
- if ((i | 0) == 2) {
- i = 3;
- continue;
- }
- x = (x + 1) | 0;
- i = (i + 1) | 0;
- } while ((i | 0) < 5);
- return x | 0;
- }
-
- function labelBreak() {
- var x = 0;
- label: do {
- x = 1;
- break label;
- x = 2;
- } while (0);
- return x | 0;
- }
-
- function labelContinue() {
- var x = 0;
- label: do {
- if ((x | 0) == 1)
- break label;
- x = 1;
- continue label;
- x = 2;
- } while (0);
- return x | 0;
- }
-
- function labelInLabelBreakInner() {
- var x = 0;
- outer: do {
- x = 1;
- inner: do {
- x = 2;
- break inner;
- x = 3;
- } while (0);
- x = 4;
- } while (0);
- return x | 0;
- }
-
- function labelInLabelBreakOuter() {
- var x = 0;
- outer: do {
- x = 1;
- inner: do {
- x = 2;
- break outer;
- x = 3;
- } while (0);
- x = 4;
- } while (0);
- return x | 0;
- }
-
- function whileInWhileBreakOuter() {
- var x = 0, i = 0, j = 0;
- label:
- while ((i | 0) < 5) {
- j = 0;
- while ((j | 0) < 2) {
- x = (x + 1) | 0;
- if ((x | 0) == 8)
- break label;
- j = (j + 1) | 0;
- }
- i = (i + 1) | 0;
- }
- return x | 0;
- }
-
- function switchCase(x) {
- x = x | 0;
- var y = 0;
- switch (x | 0) {
- case 0:
- y = 1;
- break;
- case 1:
- y = 2;
- break;
- case 2:
- y = 3;
- break;
- }
- return y | 0;
- }
-
- function switchFallThrough(x) {
- x = x | 0;
- var y = 0;
- switch (x | 0) {
- case 3:
- y = (y + 1000) | 0;
- case 2:
- y = (y + 100) | 0;
- case 1:
- y = (y + 10) | 0;
- default:
- y = (y + 1) | 0;
- }
- return y | 0;
- }
-
- function conditionalTrue() {
- var x = 0;
- x = 5;
- return (((x | 0) > 0) ? 1 : 2) | 0;
- }
-
- function conditionalFalse() {
- var x = 0;
- return ((x | 0) > 0) ? 1.0 : 2.0;
- }
-
- function conditionalFalse2() {
- var x = 0, y = 0;
- return (((x | 0) > 0) ? (y = (y + 1) | 0) : (y = (y + 2) | 0)) | 0;
- }
-
- return {
- ifTrue: ifTrue,
- ifFalse: ifFalse,
- ifElseTrue: ifElseTrue,
- ifElseFalse: ifElseFalse,
- ifInIf: ifInIf,
-
- whileLoop: whileLoop,
- whileBreak: whileBreak,
- whileContinue: whileContinue,
- whileInWhile: whileInWhile,
-
- doLoop: doLoop,
- doBreak: doBreak,
- doContinue: doContinue,
-
- labelBreak: labelBreak,
- labelContinue: labelContinue,
- labelInLabelBreakInner: labelInLabelBreakInner,
- labelInLabelBreakOuter: labelInLabelBreakOuter,
- whileInWhileBreakOuter: whileInWhileBreakOuter,
-
- switchCase: switchCase,
- switchFallThrough: switchFallThrough,
-
- conditionalTrue: conditionalTrue,
- conditionalFalse: conditionalFalse,
- conditionalFalse2: conditionalFalse2,
- };
-}
-*/
-
-var module = loadWebAssembly("wasm/control-flow.wasm");
-
-shouldBe(module.ifTrue(), 1);
-shouldBe(module.ifFalse(), 0);
-shouldBe(module.ifElseTrue(), 1);
-shouldBe(module.ifElseFalse(), 2);
-shouldBe(module.ifInIf(), 3);
-
-shouldBe(module.whileLoop(), 5);
-shouldBe(module.whileBreak(), 2);
-shouldBe(module.whileContinue(), 4);
-shouldBe(module.whileInWhile(), 10);
-
-shouldBe(module.doLoop(), 1);
-shouldBe(module.doBreak(), 2);
-shouldBe(module.doContinue(), 4);
-
-shouldBe(module.labelBreak(), 1);
-shouldBe(module.labelContinue(), 1);
-shouldBe(module.labelInLabelBreakInner(), 4);
-shouldBe(module.labelInLabelBreakOuter(), 2);
-shouldBe(module.whileInWhileBreakOuter(), 8);
-
-shouldBe(module.switchCase(0), 1);
-shouldBe(module.switchCase(1), 2);
-shouldBe(module.switchCase(2), 3);
-shouldBe(module.switchCase(3), 0);
-shouldBe(module.switchFallThrough(0), 1);
-shouldBe(module.switchFallThrough(1), 11);
-shouldBe(module.switchFallThrough(2), 111);
-shouldBe(module.switchFallThrough(3), 1111);
-shouldBe(module.switchFallThrough(4), 1);
-
-shouldBe(module.conditionalTrue(), 1);
-shouldBe(module.conditionalFalse(), 2);
-shouldBe(module.conditionalFalse2(), 2);
</del></span></pre></div>
<a id="trunkJSTestsstresswasmglobalsjs"></a>
<div class="delfile"><h4>Deleted: trunk/JSTests/stress/wasm-globals.js (205661 => 205662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/wasm-globals.js        2016-09-08 21:16:38 UTC (rev 205661)
+++ trunk/JSTests/stress/wasm-globals.js        2016-09-08 21:30:17 UTC (rev 205662)
</span><span class="lines">@@ -1,131 +0,0 @@
</span><del>-//@ skip
-
-function shouldBe(actual, expected) {
- if (actual !== expected)
- throw new Error('bad value: ' + actual);
-}
-
-/*
-wasm/globals.wasm is generated by pack-asmjs <https://github.com/WebAssembly/polyfill-prototype-1> from the following script:
-
-function asmModule(global, imports, buffer) {
- "use asm";
-
- var fround = global.Math.fround;
- var a = imports.a | 0;
- var b = fround(imports.b);
- var c = +imports.c;
- var x = 0;
- var y = fround(0);
- var z = 0.0;
-
- function getA() {
- return a | 0;
- }
-
- function getB() {
- return b;
- }
-
- function getC() {
- return c;
- }
-
- function getX() {
- return x | 0;
- }
-
- function getY() {
- return y;
- }
-
- function getZ() {
- return z;
- }
-
- function setX(newX) {
- newX = newX | 0;
- x = newX;
- }
-
- function setY(newY) {
- newY = fround(newY);
- y = newY;
- }
-
- function setZ(newZ) {
- newZ = +newZ;
- z = newZ;
- }
-
- function setXExpression(newX) {
- newX = newX | 0;
- return (x = newX) | 0;
- }
-
- function setYExpression(newY) {
- newY = fround(newY);
- return y = newY;
- }
-
- function setZExpression(newZ) {
- newZ = +newZ;
- return z = newZ;
- }
-
- return {
- getA: getA,
- getB: getB,
- getC: getC,
- getX: getX,
- getY: getY,
- getZ: getZ,
- setX: setX,
- setY: setY,
- setZ: setZ,
- setXExpression: setXExpression,
- setYExpression: setYExpression,
- setZExpression: setZExpression,
- };
-}
-*/
-
-var imports = {
- a: 42,
- b: 4.2,
- c: 4.2,
-};
-var module = loadWebAssembly("wasm/globals.wasm", imports);
-
-shouldBe(module.getA(), 42);
-shouldBe(module.getB(), 4.199999809265137);
-shouldBe(module.getC(), 4.2);
-
-shouldBe(module.getX(), 0);
-shouldBe(module.getY(), 0);
-shouldBe(module.getZ(), 0);
-
-module.setX(1);
-
-shouldBe(module.getX(), 1);
-shouldBe(module.getY(), 0);
-shouldBe(module.getZ(), 0);
-
-module.setY(0.1);
-
-shouldBe(module.getX(), 1);
-shouldBe(module.getY(), 0.10000000149011612);
-shouldBe(module.getZ(), 0);
-
-module.setZ(0.1);
-
-shouldBe(module.getX(), 1);
-shouldBe(module.getY(), 0.10000000149011612);
-shouldBe(module.getZ(), 0.1);
-
-shouldBe(module.setXExpression(2), 2);
-shouldBe(module.getX(), 2);
-shouldBe(module.setYExpression(0.2), 0.20000000298023224);
-shouldBe(module.getY(), 0.20000000298023224);
-shouldBe(module.setZExpression(0.2), 0.2);
-shouldBe(module.getZ(), 0.2);
</del></span></pre></div>
<a id="trunkJSTestsstresswasmlinearmemoryjs"></a>
<div class="delfile"><h4>Deleted: trunk/JSTests/stress/wasm-linear-memory.js (205661 => 205662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/wasm-linear-memory.js        2016-09-08 21:16:38 UTC (rev 205661)
+++ trunk/JSTests/stress/wasm-linear-memory.js        2016-09-08 21:30:17 UTC (rev 205662)
</span><span class="lines">@@ -1,271 +0,0 @@
</span><del>-//@ skip
-
-function shouldBe(actual, expected) {
- if (actual !== expected)
- throw new Error('bad value: ' + actual);
-}
-
-function shouldThrow(func, message) {
- var error = null;
- try {
- func();
- } catch (e) {
- error = e;
- }
- if (!error)
- throw new Error("not thrown.");
- if (String(error) !== message)
- throw new Error("bad error: " + String(error));
-}
-
-/*
-wasm/linear-memory.wasm is generated by pack-asmjs <https://github.com/WebAssembly/polyfill-prototype-1> from the following script:
-
-function asmModule(global, imports, buffer) {
- "use asm";
-
- var fround = global.Math.fround;
- var int8Array = new global.Int8Array(buffer);
- var uint8Array = new global.Uint8Array(buffer);
- var int16Array = new global.Int16Array(buffer);
- var uint16Array = new global.Uint16Array(buffer);
- var int32Array = new global.Int32Array(buffer);
- var float32Array = new global.Float32Array(buffer);
- var float64Array = new global.Float64Array(buffer);
-
- function getInt8(i) {
- i = i | 0;
- return int8Array[i] | 0;
- }
-
- function getUint8(i) {
- i = i | 0;
- return uint8Array[i] | 0;
- }
-
- function getInt16(i) {
- i = i | 0;
- return int16Array[i >> 1] | 0;
- }
-
- function getUint16(i) {
- i = i | 0;
- return uint16Array[i >> 1] | 0;
- }
-
- function getInt32(i) {
- i = i | 0;
- return int32Array[i >> 2] | 0;
- }
-
- function getFloat32(i) {
- i = i | 0;
- return fround(float32Array[i >> 2]);
- }
-
- function getFloat64(i) {
- i = i | 0;
- return +float64Array[i >> 3];
- }
-
- function setInt8(i, x) {
- i = i | 0;
- x = x | 0;
- int8Array[i] = x;
- }
-
- function setUint8(i, x) {
- i = i | 0;
- x = x | 0;
- uint8Array[i] = x;
- }
-
- function setInt16(i, x) {
- i = i | 0;
- x = x | 0;
- int16Array[i >> 1] = x;
- }
-
- function setUint16(i, x) {
- i = i | 0;
- x = x | 0;
- uint16Array[i >> 1] = x;
- }
-
- function setInt32(i, x) {
- i = i | 0;
- x = x | 0;
- int32Array[i >> 2] = x;
- }
-
- function setFloat32(i, x) {
- i = i | 0;
- x = fround(x);
- float32Array[i >> 2] = x;
- }
-
- function setFloat64(i, x) {
- i = i | 0;
- x = +x;
- float64Array[i >> 3] = x;
- }
-
- function setInt8Expression(i, x) {
- i = i | 0;
- x = x | 0;
- return (int8Array[i] = x) | 0;
- }
-
- function setUint8Expression(i, x) {
- i = i | 0;
- x = x | 0;
- return (uint8Array[i] = x) | 0;
- }
-
- function setInt16Expression(i, x) {
- i = i | 0;
- x = x | 0;
- return (int16Array[i >> 1] = x) | 0;
- }
-
- function setUint16Expression(i, x) {
- i = i | 0;
- x = x | 0;
- return (uint16Array[i >> 1] = x) | 0;
- }
-
- function setInt32Expression(i, x) {
- i = i | 0;
- x = x | 0;
- return (int32Array[i >> 2] = x) | 0;
- }
-
- function setFloat32Expression(i, x) {
- i = i | 0;
- x = fround(x);
- return float32Array[i >> 2] = x;
- }
-
- function setFloat64Expression(i, x) {
- i = i | 0;
- x = +x;
- return float64Array[i >> 3] = x;
- }
-
- return {
- getInt8: getInt8,
- getUint8: getUint8,
- getInt16: getInt16,
- getUint16: getUint16,
- getInt32: getInt32,
- getFloat32: getFloat32,
- getFloat64: getFloat64,
-
- setInt8: setInt8,
- setUint8: setUint8,
- setInt16: setInt16,
- setUint16: setUint16,
- setInt32: setInt32,
- setFloat32: setFloat32,
- setFloat64: setFloat64,
-
- setInt8Expression: setInt8Expression,
- setUint8Expression: setUint8Expression,
- setInt16Expression: setInt16Expression,
- setUint16Expression: setUint16Expression,
- setInt32Expression: setInt32Expression,
- setFloat32Expression: setFloat32Expression,
- setFloat64Expression: setFloat64Expression,
- };
-}
-*/
-
-var buffer = new ArrayBuffer(16);
-var module = loadWebAssembly("wasm/linear-memory.wasm", { }, buffer);
-
-var int32Array = new Int32Array(buffer);
-
-// Basic gets and sets.
-module.setInt8(0, 1);
-shouldBe(module.getInt8(0), 1);
-module.setUint8(0, 2);
-shouldBe(module.getUint8(0), 2);
-module.setInt16(0, 3);
-shouldBe(module.getInt16(0), 3);
-module.setUint16(0, 4);
-shouldBe(module.getUint16(0), 4);
-module.setInt32(0, 5);
-shouldBe(module.getInt32(0), 5);
-module.setFloat32(0, 6.7);
-shouldBe(module.getFloat32(0), 6.699999809265137);
-module.setFloat64(0, 8.9);
-shouldBe(module.getFloat64(0), 8.9);
-
-int32Array[0] = 0x00FFFF00;
-shouldBe(module.getUint8(0), 0);
-shouldBe(module.getUint8(1), 255);
-shouldBe(module.getUint8(2), 255);
-shouldBe(module.getUint8(3), 0);
-
-// Type punning.
-module.setInt8(0, -1);
-shouldBe(module.getInt8(0), -1);
-shouldBe(module.getUint8(0), 255);
-
-module.setInt8(1, -1);
-shouldBe(module.getInt8(1), -1);
-shouldBe(module.getUint8(1), 255);
-shouldBe(module.getInt16(0), -1);
-shouldBe(module.getUint16(0), 65535);
-
-// Out-of-bound accesses.
-module.getInt8(15);
-shouldThrow(() => {
- module.getInt8(16);
-}, "Error: Out-of-bounds access.");
-shouldThrow(() => {
- module.getInt8(-1);
-}, "Error: Out-of-bounds access.");
-
-// Unaligned accesses
-int32Array[0] = 0;
-int32Array[1] = 0x01234567;
-int32Array[2] = 0;
-shouldBe(module.getInt32(3), 0);
-shouldBe(module.getInt32(4), 0x01234567);
-shouldBe(module.getInt32(5), 0x01234567);
-shouldBe(module.getInt32(6), 0x01234567);
-shouldBe(module.getInt32(7), 0x01234567);
-shouldBe(module.getInt32(8), 0);
-
-int32Array[0] = 0;
-int32Array[1] = 0;
-int32Array[2] = 0;
-module.setInt32(3, 1);
-shouldBe(int32Array[0] == 1 && int32Array[1] == 0 && int32Array[2] == 0, true);
-module.setInt32(4, 2);
-shouldBe(int32Array[0] == 1 && int32Array[1] == 2 && int32Array[2] == 0, true);
-module.setInt32(5, 3);
-shouldBe(int32Array[0] == 1 && int32Array[1] == 3 && int32Array[2] == 0, true);
-module.setInt32(6, 4);
-shouldBe(int32Array[0] == 1 && int32Array[1] == 4 && int32Array[2] == 0, true);
-module.setInt32(7, 5);
-shouldBe(int32Array[0] == 1 && int32Array[1] == 5 && int32Array[2] == 0, true);
-module.setInt32(8, 6);
-shouldBe(int32Array[0] == 1 && int32Array[1] == 5 && int32Array[2] == 6, true);
-
-// Store expressions.
-shouldBe(module.setInt8Expression(0, 1), 1);
-shouldBe(module.getInt8(0), 1);
-shouldBe(module.setUint8Expression(0, -1), -1);
-shouldBe(module.getUint8(0), 255);
-shouldBe(module.setInt16Expression(0, 2), 2);
-shouldBe(module.getInt16(0), 2);
-shouldBe(module.setUint16Expression(0, -1), -1);
-shouldBe(module.getUint16(0), 65535);
-shouldBe(module.setInt32Expression(0, 3), 3);
-shouldBe(module.getInt32(0), 3);
-shouldBe(module.setFloat32Expression(0, 4.2), 4.199999809265137);
-shouldBe(module.getFloat32(0), 4.199999809265137);
-shouldBe(module.setFloat64Expression(0, 4.2), 4.2);
-shouldBe(module.getFloat64(0), 4.2);
</del></span></pre></div>
<a id="trunkJSTestsstresswasmlocalsjs"></a>
<div class="delfile"><h4>Deleted: trunk/JSTests/stress/wasm-locals.js (205661 => 205662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/wasm-locals.js        2016-09-08 21:16:38 UTC (rev 205661)
+++ trunk/JSTests/stress/wasm-locals.js        2016-09-08 21:30:17 UTC (rev 205662)
</span><span class="lines">@@ -1,62 +0,0 @@
</span><del>-//@ skip
-
-function shouldBe(actual, expected) {
- if (actual !== expected)
- throw new Error('bad value: ' + actual);
-}
-
-/*
-wasm/locals.wasm is generated by pack-asmjs <https://github.com/WebAssembly/polyfill-prototype-1> from the following script:
-
-function asmModule(global, env, buffer) {
- "use asm";
-
- function sum(x, y) {
- x = x | 0;
- y = y | 0;
- var result = 0;
- result = (x + y) | 0;
- return result | 0;
- }
-
- function add1(x) {
- x = x | 0;
- return (x + 1) | 0;
- }
-
- function testSetLocalExpression1() {
- var x = 0;
- return (x = 2);
- }
-
- function testSetLocalExpression2() {
- var x = 0;
- x = 1;
- return (x + (((x = 3) + x) | 0)) | 0;
- }
-
- function testSetLocalExpression3() {
- var x = 0;
- x = 1;
- return (x + (((x = ((x + 1) | 0)) + x) | 0)) | 0;
- }
-
- return {
- sum: sum,
- add1: add1,
-
- testSetLocalExpression1: testSetLocalExpression1,
- testSetLocalExpression2: testSetLocalExpression2,
- testSetLocalExpression3: testSetLocalExpression3,
- };
-}
-*/
-
-var module = loadWebAssembly("wasm/locals.wasm");
-
-shouldBe(module.sum(12, 30), 42);
-shouldBe(module.add1(42), 43);
-
-shouldBe(module.testSetLocalExpression1(), 2);
-shouldBe(module.testSetLocalExpression2(), 7);
-shouldBe(module.testSetLocalExpression3(), 5);
</del></span></pre></div>
<a id="trunkJSTestsstresswasmrelationaljs"></a>
<div class="delfile"><h4>Deleted: trunk/JSTests/stress/wasm-relational.js (205661 => 205662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/wasm-relational.js        2016-09-08 21:16:38 UTC (rev 205661)
+++ trunk/JSTests/stress/wasm-relational.js        2016-09-08 21:30:17 UTC (rev 205662)
</span><span class="lines">@@ -1,242 +0,0 @@
</span><del>-//@ skip
-
-function shouldBe(actual, expected) {
- if (actual !== expected)
- throw new Error('bad value: ' + actual);
-}
-
-/*
-wasm/relational.wasm is generated by pack-asmjs <https://github.com/WebAssembly/polyfill-prototype-1> from the following script:
-
-function asmModule(global, env, buffer) {
- "use asm";
-
- var fround = global.Math.fround;
-
- function equal(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x | 0) == (y | 0)) | 0;
- }
-
- function notEqual(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x | 0) != (y | 0)) | 0;
- }
-
- function lessThan(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x | 0) < (y | 0)) | 0;
- }
-
- function lessThanOrEqual(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x | 0) <= (y | 0)) | 0;
- }
-
- function greaterThan(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x | 0) > (y | 0)) | 0;
- }
-
- function greaterThanOrEqual(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x | 0) >= (y | 0)) | 0;
- }
-
- function unsignedLessThan(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x >>> 0) < (y >>> 0)) | 0;
- }
-
- function unsignedLessThanOrEqual(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x >>> 0) <= (y >>> 0)) | 0;
- }
-
- function unsignedGreaterThan(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x >>> 0) > (y >>> 0)) | 0;
- }
-
- function unsignedGreaterThanOrEqual(x, y) {
- x = x | 0;
- y = y | 0;
- return ((x >>> 0) >= (y >>> 0)) | 0;
- }
-
- function floatEqual(x, y) {
- x = fround(x);
- y = fround(y);
- return (x == y) | 0;
- }
-
- function floatNotEqual(x, y) {
- x = fround(x);
- y = fround(y);
- return (x != y) | 0;
- }
-
- function floatLessThan(x, y) {
- x = fround(x);
- y = fround(y);
- return (x < y) | 0;
- }
-
- function floatLessThanOrEqual(x, y) {
- x = fround(x);
- y = fround(y);
- return (x <= y) | 0;
- }
-
- function floatGreaterThan(x, y) {
- x = fround(x);
- y = fround(y);
- return (x > y) | 0;
- }
-
- function floatGreaterThanOrEqual(x, y) {
- x = fround(x);
- y = fround(y);
- return (x >= y) | 0;
- }
-
- function doubleEqual(x, y) {
- x = +x;
- y = +y;
- return (x == y) | 0;
- }
-
- function doubleNotEqual(x, y) {
- x = +x;
- y = +y;
- return (x != y) | 0;
- }
-
- function doubleLessThan(x, y) {
- x = +x;
- y = +y;
- return (x < y) | 0;
- }
-
- function doubleLessThanOrEqual(x, y) {
- x = +x;
- y = +y;
- return (x <= y) | 0;
- }
-
- function doubleGreaterThan(x, y) {
- x = +x;
- y = +y;
- return (x > y) | 0;
- }
-
- function doubleGreaterThanOrEqual(x, y) {
- x = +x;
- y = +y;
- return (x >= y) | 0;
- }
-
- return {
- equal: equal,
- notEqual: notEqual,
- lessThan: lessThan,
- lessThanOrEqual: lessThanOrEqual,
- greaterThan: greaterThan,
- greaterThanOrEqual: greaterThanOrEqual,
- unsignedLessThan: unsignedLessThan,
- unsignedLessThanOrEqual: unsignedLessThanOrEqual,
- unsignedGreaterThan: unsignedGreaterThan,
- unsignedGreaterThanOrEqual: unsignedGreaterThanOrEqual,
-
- floatEqual: floatEqual,
- floatNotEqual: floatNotEqual,
- floatLessThan: floatLessThan,
- floatLessThanOrEqual: floatLessThanOrEqual,
- floatGreaterThan: floatGreaterThan,
- floatGreaterThanOrEqual: floatGreaterThanOrEqual,
-
- doubleEqual: doubleEqual,
- doubleNotEqual: doubleNotEqual,
- doubleLessThan: doubleLessThan,
- doubleLessThanOrEqual: doubleLessThanOrEqual,
- doubleGreaterThan: doubleGreaterThan,
- doubleGreaterThanOrEqual: doubleGreaterThanOrEqual,
- };
-}
-*/
-
-var module = loadWebAssembly("wasm/relational.wasm");
-
-shouldBe(module.equal(1, 1), 1);
-shouldBe(module.equal(1, 2), 0);
-shouldBe(module.notEqual(1, 2), 1);
-shouldBe(module.notEqual(1, 1), 0);
-shouldBe(module.lessThan(-1, 2), 1);
-shouldBe(module.lessThan(1, 1), 0);
-shouldBe(module.lessThanOrEqual(1, 1), 1);
-shouldBe(module.lessThanOrEqual(2, 1), 0);
-shouldBe(module.greaterThan(2, -1), 1);
-shouldBe(module.greaterThan(1, 1), 0);
-shouldBe(module.greaterThanOrEqual(1, 1), 1);
-shouldBe(module.greaterThanOrEqual(1, 2), 0);
-shouldBe(module.unsignedLessThan(2, -1), 1);
-shouldBe(module.unsignedLessThan(-1, 2), 0);
-shouldBe(module.unsignedLessThanOrEqual(2, -1), 1);
-shouldBe(module.unsignedLessThanOrEqual(-1, 2), 0);
-shouldBe(module.unsignedGreaterThan(-1, 2), 1);
-shouldBe(module.unsignedGreaterThan(2, -1), 0);
-shouldBe(module.unsignedGreaterThanOrEqual(-1, 2), 1);
-shouldBe(module.unsignedGreaterThanOrEqual(2, -1), 0);
-
-shouldBe(module.floatEqual(0.1, 0.1), 1);
-shouldBe(module.floatEqual(0.1, 0.2), 0);
-shouldBe(module.floatNotEqual(0.1, 0.2), 1);
-shouldBe(module.floatNotEqual(0.1, 0.1), 0);
-shouldBe(module.floatLessThan(-0.1, 0.2), 1);
-shouldBe(module.floatLessThan(0.1, 0.1), 0);
-shouldBe(module.floatLessThanOrEqual(0.1, 0.1), 1);
-shouldBe(module.floatLessThanOrEqual(0.2, 0.1), 0);
-shouldBe(module.floatGreaterThan(0.2, -0.1), 1);
-shouldBe(module.floatGreaterThan(0.1, 0.1), 0);
-shouldBe(module.floatGreaterThanOrEqual(0.1, 0.1), 1);
-shouldBe(module.floatGreaterThanOrEqual(0.1, 0.2), 0);
-shouldBe(module.floatEqual(NaN, NaN), 0);
-shouldBe(module.floatNotEqual(NaN, NaN), 0);
-shouldBe(module.floatNotEqual(NaN, 0.1), 0);
-shouldBe(module.floatGreaterThan(NaN, 0.1), 0);
-shouldBe(module.floatLessThan(NaN, 0.1), 0);
-shouldBe(module.floatEqual(Infinity, Infinity), 1);
-shouldBe(module.floatGreaterThan(Infinity, 0.1), 1);
-shouldBe(module.floatGreaterThan(Infinity, NaN), 0);
-shouldBe(module.floatLessThan(Infinity, NaN), 0);
-
-shouldBe(module.doubleEqual(0.1, 0.1), 1);
-shouldBe(module.doubleEqual(0.1, 0.2), 0);
-shouldBe(module.doubleNotEqual(0.1, 0.2), 1);
-shouldBe(module.doubleNotEqual(0.1, 0.1), 0);
-shouldBe(module.doubleLessThan(-0.1, 0.2), 1);
-shouldBe(module.doubleLessThan(0.1, 0.1), 0);
-shouldBe(module.doubleLessThanOrEqual(0.1, 0.1), 1);
-shouldBe(module.doubleLessThanOrEqual(0.2, 0.1), 0);
-shouldBe(module.doubleGreaterThan(0.2, -0.1), 1);
-shouldBe(module.doubleGreaterThan(0.1, 0.1), 0);
-shouldBe(module.doubleGreaterThanOrEqual(0.1, 0.1), 1);
-shouldBe(module.doubleGreaterThanOrEqual(0.1, 0.2), 0);
-shouldBe(module.doubleEqual(NaN, NaN), 0);
-shouldBe(module.doubleNotEqual(NaN, NaN), 0);
-shouldBe(module.doubleNotEqual(NaN, 0.1), 0);
-shouldBe(module.doubleGreaterThan(NaN, 0.1), 0);
-shouldBe(module.doubleLessThan(NaN, 0.1), 0);
-shouldBe(module.doubleEqual(Infinity, Infinity), 1);
-shouldBe(module.doubleGreaterThan(Infinity, 0.1), 1);
-shouldBe(module.doubleGreaterThan(Infinity, NaN), 0);
-shouldBe(module.doubleLessThan(Infinity, NaN), 0);
</del></span></pre></div>
<a id="trunkJSTestsstresswasmtypeconversionjs"></a>
<div class="delfile"><h4>Deleted: trunk/JSTests/stress/wasm-type-conversion.js (205661 => 205662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/wasm-type-conversion.js        2016-09-08 21:16:38 UTC (rev 205661)
+++ trunk/JSTests/stress/wasm-type-conversion.js        2016-09-08 21:30:17 UTC (rev 205662)
</span><span class="lines">@@ -1,191 +0,0 @@
</span><del>-//@ skip
-
-function shouldBe(actual, expected) {
- if (actual !== expected)
- throw new Error('bad value: ' + actual);
-}
-
-/*
-wasm/type-conversion.wasm is generated by pack-asmjs <https://github.com/WebAssembly/polyfill-prototype-1> from the following script:
-
-function asmModule(global, imports, buffer) {
- "use asm";
-
- var fround = global.Math.fround;
- var getInt32 = imports.getInt32;
- var getDouble = imports.getDouble;
- var getString = imports.getString;
- var getBoolean = imports.getBoolean;
-
- function convertIntToFloat(x) {
- x = x | 0;
- return fround(x | 0);
- }
-
- function convertUnsignedIntToFloat(x) {
- x = x | 0;
- return fround(x >>> 0);
- }
-
- function convertIntToDouble(x) {
- x = x | 0;
- return +(x | 0);
- }
-
- function convertUnsignedIntToDouble(x) {
- x = x | 0;
- return +(x >>> 0);
- }
-
- function convertFloatToInt(x) {
- x = fround(x);
- return ~~x;
- }
-
- function convertFloatToDouble(x) {
- x = fround(x);
- return +x;
- }
-
- function convertDoubleToInt(x) {
- x = +x;
- return ~~x;
- }
-
- function convertDoubleToFloat(x) {
- x = +x;
- return fround(x);
- }
-
- function takeAndReturnInt32(x) {
- x = x | 0;
- return x | 0;
- }
-
- function takeAndReturnFloat(x) {
- x = fround(x);
- return x;
- }
-
- function takeAndReturnDouble(x) {
- x = +x;
- return x;
- }
-
- function returnInt32FromInt32() {
- return getInt32() | 0;
- }
-
- function returnInt32FromDouble() {
- return getDouble() | 0;
- }
-
- function returnInt32FromString() {
- return getString() | 0;
- }
-
- function returnInt32FromBoolean() {
- return getBoolean() | 0;
- }
-
- function returnDoubleFromInt32() {
- return +getInt32();
- }
-
- function returnDoubleFromDouble() {
- return +getDouble();
- }
-
- function returnDoubleFromString() {
- return +getString();
- }
-
- function returnDoubleFromBoolean() {
- return +getBoolean();
- }
-
- return {
- convertIntToFloat: convertIntToFloat,
- convertUnsignedIntToFloat: convertUnsignedIntToFloat,
- convertIntToDouble: convertIntToDouble,
- convertUnsignedIntToDouble: convertUnsignedIntToDouble,
- convertFloatToInt: convertFloatToInt,
- convertFloatToDouble: convertFloatToDouble,
- convertDoubleToInt: convertDoubleToInt,
- convertDoubleToFloat: convertDoubleToFloat,
-
- takeAndReturnInt32: takeAndReturnInt32,
- takeAndReturnFloat: takeAndReturnFloat,
- takeAndReturnDouble: takeAndReturnDouble,
-
- returnInt32FromInt32: returnInt32FromInt32,
- returnInt32FromDouble: returnInt32FromDouble,
- returnInt32FromString: returnInt32FromString,
- returnInt32FromBoolean: returnInt32FromBoolean,
- returnDoubleFromInt32: returnDoubleFromInt32,
- returnDoubleFromDouble: returnDoubleFromDouble,
- returnDoubleFromString: returnDoubleFromString,
- returnDoubleFromBoolean: returnDoubleFromBoolean,
- };
-}
-*/
-
-var imports = {
- getInt32: () => 42,
- getDouble: () => 4.2,
- getString: () => "4.2",
- getBoolean: () => true,
-};
-var module = loadWebAssembly("wasm/type-conversion.wasm", imports);
-
-shouldBe(module.convertIntToFloat(-1), -1);
-shouldBe(module.convertUnsignedIntToFloat(-1), 4294967296);
-shouldBe(module.convertIntToDouble(-1), -1);
-shouldBe(module.convertUnsignedIntToDouble(-1), 4294967295);
-shouldBe(module.convertFloatToInt(4.2), 4);
-shouldBe(module.convertFloatToDouble(4.2), 4.199999809265137);
-shouldBe(module.convertDoubleToInt(4.2), 4);
-shouldBe(module.convertDoubleToFloat(4.2), 4.199999809265137);
-
-var two = {
- valueOf() { return 2; }
-};
-
-shouldBe(module.takeAndReturnInt32(1), 1);
-shouldBe(module.takeAndReturnInt32("1"), 1);
-shouldBe(module.takeAndReturnInt32(1.9), 1);
-shouldBe(module.takeAndReturnInt32(true), 1);
-shouldBe(module.takeAndReturnInt32(false), 0);
-shouldBe(module.takeAndReturnInt32("one"), 0);
-shouldBe(module.takeAndReturnInt32({ }), 0);
-shouldBe(module.takeAndReturnInt32([2.5]), 2);
-shouldBe(module.takeAndReturnInt32(two), 2);
-
-shouldBe(module.takeAndReturnFloat(0.1), 0.10000000149011612);
-shouldBe(module.takeAndReturnFloat("0.1"), 0.10000000149011612);
-shouldBe(module.takeAndReturnFloat(1), 1);
-shouldBe(module.takeAndReturnFloat(true), 1);
-shouldBe(module.takeAndReturnFloat(false), 0);
-shouldBe(isNaN(module.takeAndReturnFloat("one")), true);
-shouldBe(isNaN(module.takeAndReturnFloat({ })), true);
-shouldBe(module.takeAndReturnFloat([2.5]), 2.5);
-shouldBe(module.takeAndReturnFloat(two), 2);
-
-shouldBe(module.takeAndReturnDouble(1.5), 1.5);
-shouldBe(module.takeAndReturnDouble("1.5"), 1.5);
-shouldBe(module.takeAndReturnDouble(1), 1);
-shouldBe(module.takeAndReturnDouble(true), 1);
-shouldBe(module.takeAndReturnDouble(false), 0);
-shouldBe(isNaN(module.takeAndReturnDouble("one")), true);
-shouldBe(isNaN(module.takeAndReturnDouble({ })), true);
-shouldBe(module.takeAndReturnDouble([2.5]), 2.5);
-shouldBe(module.takeAndReturnDouble(two), 2);
-
-shouldBe(module.returnInt32FromInt32(), 42);
-shouldBe(module.returnInt32FromDouble(), 4);
-shouldBe(module.returnInt32FromString(), 4);
-shouldBe(module.returnInt32FromBoolean(), 1);
-shouldBe(module.returnDoubleFromInt32(), 42);
-shouldBe(module.returnDoubleFromDouble(), 4.2);
-shouldBe(module.returnDoubleFromString(), 4.2);
-shouldBe(module.returnDoubleFromBoolean(), 1);
</del></span></pre>
</div>
</div>
</body>
</html>