d5f6e87052488787a1e6f3f27ca98079c56771f7
[WebKit-https.git] / JSTests / ChangeLog
1 2017-06-21  Saam Barati  <sbarati@apple.com>
2
3         eval virtual call is incorrect in the baseline JIT
4         https://bugs.webkit.org/show_bug.cgi?id=173587
5         <rdar://problem/32867897>
6
7         Reviewed by Michael Saboff.
8
9         * stress/do-eval-virtual-call-correctly.js: Added.
10         (assert):
11         (f):
12         (i.test):
13         (catch):
14
15 2017-06-20  Ryan Haddad  <ryanhaddad@apple.com>
16
17         Update test262 test expectations after r218581.
18
19         Unreviewed test gardening.
20
21         * test262.yaml:
22
23 2017-06-20  Oleksandr Skachkov  <gskachkov@gmail.com>
24
25         Revert changes in bug#160417 about extending `null` not being a derived class
26         https://bugs.webkit.org/show_bug.cgi?id=169293
27
28         Reviewed by Saam Barati.
29
30         * stress/class-derived-from-null.js:
31         (assertThrow):
32         (test1):
33         (test2):
34         (test3):
35         (test4):
36         (test5):
37         (test6):
38
39 2017-06-13  Yusuke Suzuki  <utatane.tea@gmail.com>
40
41         [DFG] More ArrayIndexOf fixups for various types
42         https://bugs.webkit.org/show_bug.cgi?id=173176
43
44         Reviewed by Saam Barati.
45
46         * stress/array-indexof-arraystorage.js: Added.
47         (shouldBe):
48         (indexOfInt32Other):
49         (indexOfInt32Cell):
50         (indexOfInt32Boolean):
51         (indexOfDoubleOther):
52         (indexOfDoubleCell):
53         (indexOfDoubleBoolean):
54         (indexOfInt32):
55         (indexOfDouble):
56         * stress/array-indexof-constant-folding.js: Added.
57         (shouldBe):
58         (indexOfInt32Other):
59         (indexOfInt32Cell):
60         (indexOfInt32Boolean):
61         (indexOfDoubleOther):
62         (indexOfDoubleCell):
63         (indexOfDoubleBoolean):
64         * stress/array-indexof-hole-and-other.js: Added.
65         (shouldBe):
66         (indexOf):
67         * stress/array-indexof-other.js: Added.
68         (shouldBe):
69         (indexOfInt32):
70         (indexOfDouble):
71         (indexOfString):
72         (indexOfObject):
73         * stress/array-indexof-symbol.js: Added.
74         (shouldBe):
75         (indexOfInt32):
76         (indexOfDouble):
77         (indexOfString):
78         (indexOfObject):
79
80 2017-06-19  Joseph Pecoraro  <pecoraro@apple.com>
81
82         test262: Completion values for control flow do not match the spec
83         https://bugs.webkit.org/show_bug.cgi?id=171265
84
85         Reviewed by Saam Barati.
86
87         * stress/completion-value.js:
88         Condensed test for completion values in top level statements.
89
90         * stress/super-get-by-id.js:
91         ClassDeclaration when evaled no longer produce values. Convert
92         these to ClassExpressions so they produce the class value.
93         
94         * ChakraCore/test/GlobalFunctions/evalreturns3.baseline-jsc:
95         This is a progression for currect spec behavior.
96
97         * mozilla/mozilla-tests.yaml:
98         This test is now outdated, so mark it as failing for that reason.
99
100         * test262.yaml:
101         Passing all "cptn" completion value tests.
102
103 2017-06-17  Keith Miller  <keith_miller@apple.com>
104
105         ArrayBuffer constructor needs to create subclass structures before its buffer
106         https://bugs.webkit.org/show_bug.cgi?id=173510
107
108         Reviewed by Yusuke Suzuki.
109
110         * test262.yaml:
111
112 2017-06-17  Keith Miller  <keith_miller@apple.com>
113
114         ArrayPrototype methods should use JSValue::toLength for non-Arrays.
115         https://bugs.webkit.org/show_bug.cgi?id=173506
116
117         Reviewed by Ryosuke Niwa.
118
119         Re-baseline tests.
120
121         * ChakraCore/test/Function/apply3.baseline-jsc:
122         * test262.yaml:
123
124 2017-06-16  Yusuke Suzuki  <utatane.tea@gmail.com>
125
126         [JSC] Add fast path for Object.assign
127         https://bugs.webkit.org/show_bug.cgi?id=173416
128
129         Reviewed by Mark Lam.
130
131         * stress/object-assign-changing-properties.js: Added.
132         (shouldBe):
133         (throw.new.Error.let.source.get x):
134         (throw.new.Error):
135         (shouldBe.let.source.get x):
136         (shouldBe.let.target.set x):
137         (shouldBe.let.target.get x):
138         * stress/object-assign-proxy.js: Added.
139         (shouldBe):
140         (throw.new.Error.let.handler.get order):
141
142 2017-06-15  Yusuke Suzuki  <utatane.tea@gmail.com>
143
144         [JSC] Implement Object.assign in C++
145         https://bugs.webkit.org/show_bug.cgi?id=173414
146
147         Reviewed by Saam Barati.
148
149         * stress/object-assign-string-first.js: Added.
150         (shouldBe):
151         (source.get Symbol):
152         (source.get 1):
153         (source.get cocoa):
154
155 2017-06-14  JF Bastien  <jfbastien@apple.com>
156
157         WebAssembly: remove empty test files
158         https://bugs.webkit.org/show_bug.cgi?id=173382
159
160         Reviewed by Saam Barati.
161
162         The following files:
163                 JSTests/wasm/function-tests/call-indirect-params.js
164                 JSTests/wasm/function-tests/call-indirect.js
165                 JSTests/wasm/js-api/call-indirect-results.js
166         Were changed to empty files in https://trac.webkit.org/changeset/209771
167
168         They were testing call_indirect with the wrong semantics, before
169         we implemented tables. That change implemented tables and
170         therefore removed the erroneous tests.
171
172         We have a few tests for call_indirect which already do the right thing:
173                 JSTests/wasm/function-tests/context-switch.js
174                 JSTests/wasm/function-tests/exceptions.js
175                 JSTests/wasm/function-tests/grow-memory-2.js
176                 JSTests/wasm/function-tests/stack-overflow.js
177                 JSTests/wasm/function-tests/table-basic-2.js
178                 JSTests/wasm/function-tests/table-basic.js
179                 JSTests/wasm/js-api/call-indirect.js
180                 JSTests/wasm/js-api/table.js
181                 JSTests/wasm/js-api/unique-signature.js
182                 JSTests/wasm/js-api/wrapper-function.js
183
184         I also just imported the updated spec tests which, among other
185         things, test call_indirect:
186                 core/br.wast
187                 core/br_table.wast
188                 core/call_indirect.wast
189                 core/func.wast
190                 core/func_ptrs.wast
191                 core/imports.wast
192                 core/left-to-right.wast
193                 core/linking.wast
194                 core/nop.wast
195                 core/return.wast
196                 core/typecheck.wast
197                 core/unreachable.wast
198
199         So I think it's OK to just delete the tests which should just have
200         been deleted back when tables were added.
201
202         * wasm/function-tests/call-indirect-params.js: Removed.
203         * wasm/function-tests/call-indirect.js: Removed.
204         * wasm/js-api/call-indirect-results.js: Removed.
205
206 2017-06-13  JF Bastien  <jfbastien@apple.com>
207
208         WebAssembly: import updated spec tests
209         https://bugs.webkit.org/show_bug.cgi?id=173287
210         <rdar://problem/32725975>
211
212         Reviewed by Saam Barati.
213
214         Import spec tests as of 31c641cc15f2aedbec2fa45a5185f68416df578b,
215         with a few modifications so things work.
216
217         Fix a bunch of bugs found through this process, and punt a few tests (which I
218         marked as blocked by this bug).
219
220         Fixes:
221
222         Fix load / store alignment: r216908 erroneously implemented it as bit alignment
223         instead of byte alignment. It was also missing memory-alignment.js despite it
224         being in the ChangeLog, so add it too. This allows spec-test/align.wast.js to
225         pass.
226
227         Tables can be imported or in a section. There can be only one, but sections can
228         be empty. An Elements section can exist if there's no Table, as long as it is
229         also empty.
230
231         Memories can be imported or in a section. There can be only one, but sections
232         can be empty. A Data section can exist if there's no Memory, as long as it is
233         also empty.
234
235         Prototypes: stringify without .prototype. in the string.
236
237         WebAssembly.Table.prototype.grow was plain wrong: it takes a delta parameter,
238         not a final size, and throws a RangeError on failure, not a TypeError.
239
240         Fix compile / instantiate so the reject the promise if given an argument of the
241         wrong type (instead of failing instantly).
242
243         Fix async on neuter test.
244
245         Element section shouldn't affect any Table if any of the elements are out of
246         bounds. We need to process it in two passes.
247
248         Segment section shouldn't affect any Data if any of the segments are out of
249         bounds. We need to process it in two passes.
250
251         Empty data segments are valid, but only when there is no memory. Their index
252         still gets validated, and has to be zero.
253
254         Punts:
255
256         Error messages with context, the test seems overly restrictive but this is
257         minor.
258
259         compile/instantiate/validate property descriptors.
260
261         UTF-8 bugs.
262
263         Temporarily disable NaN tests. We need to go back and implement the following
264         semantics: https://github.com/WebAssembly/spec/pull/414 This doesn't matter as
265         much as getting all the other tests passing.
266
267         Worth noting for NaNs: f64.no_fold_mul_one (also a NaN test) as well as
268         no_fold_promote_demote (an interesting corner case which we get wrong). mul by
269         one is (assert_return (invoke \"f64.no_fold_mul_one\" (i64.const
270         0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) which means converting sNaN
271         to qNaN, and promote/demote is (assert_return (invoke \"no_fold_promote_demote\"
272         (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) which is the same. I'm not sure
273         why they're not allowed.
274
275         * wasm.yaml:
276         * wasm/function-tests/i32-load8-s.js:
277         * wasm/function-tests/memory-access-past-4gib.js:
278         (const.op.of.WASM.opcodes):
279         * wasm/function-tests/memory-alignment.js: Added.
280         (const.op.of.WASM.opcodes):
281         * wasm/function-tests/memory-section-and-import.js:
282         * wasm/js-api/Module-compile.js:
283         (async.testPromiseAPI):
284         * wasm/js-api/dont-mmap-zero-byte-memory.js:
285         (testMems):
286         * wasm/js-api/element.js:
287         (assert.throws.new.WebAssembly.Module.builder.WebAssembly):
288         * wasm/js-api/neutered-inputs.js:
289         (const.testFunction): Deleted.
290         (const.testConstructor): Deleted.
291         * wasm/js-api/table.js:
292         (assert.throws.new.WebAssembly.Module.builder.WebAssembly):
293         (new.WebAssembly.Module):
294         (assert.throws):
295         (assertBadTableImport):
296         (assert.throws.WebAssembly.Table.prototype.grow):
297         (assertBadTableInstance): Deleted.
298         * wasm/js-api/test_Data.js:
299         (DataSectionWithoutMemory):
300         * wasm/spec-harness/index.js:
301         (module):
302         (uniqueTest): Deleted.
303         (assert_invalid): Deleted.
304         (assert_soft_invalid): Deleted.
305         (register): Deleted.
306         (call): Deleted.
307         (get instance): Deleted.
308         (exports): Deleted.
309         (run): Deleted.
310         (assert_unlinkable): Deleted.
311         (assert_uninstantiable): Deleted.
312         (assert_trap): Deleted.
313         (try.f): Deleted.
314         (catch): Deleted.
315         (assert_exhaustion): Deleted.
316         (assert_return): Deleted.
317         (assert_return_nan): Deleted.
318         * wasm/spec-harness/testharness.css: Removed.
319         * wasm/spec-harness/testharness.js: Removed.
320         * wasm/spec-harness/testharnessreport.js: Removed.
321         * wasm/spec-harness/wasm-constants.js:
322         (assertTraps):
323         (assertWasmThrows):
324         * wasm/spec-harness/wasm-module-builder.js:
325         (Binary.prototype.emit_section):
326         (Binary):
327         (WasmFunctionBuilder.prototype.addBody):
328         (WasmFunctionBuilder.prototype.end):
329         (WasmFunctionBuilder):
330         (WasmModuleBuilder.prototype.stringToBytes):
331         (WasmModuleBuilder.prototype.addCustomSection):
332         (WasmModuleBuilder.prototype.addFunctionTableInit):
333         (WasmModuleBuilder.prototype.appendToTable):
334         (WasmModuleBuilder.prototype.toArray):
335         (WasmModuleBuilder.prototype.toBuffer):
336         (WasmModuleBuilder.prototype.instantiate):
337         (WasmModuleBuilder):
338         * wasm/spec-tests/address.wast.js:
339         * wasm/spec-tests/align.wast.js: Added.
340         * wasm/spec-tests/binary.wast.js:
341         * wasm/spec-tests/block.wast.js:
342         * wasm/spec-tests/br.wast.js:
343         * wasm/spec-tests/br_if.wast.js:
344         * wasm/spec-tests/br_table.wast.js:
345         * wasm/spec-tests/call.wast.js:
346         * wasm/spec-tests/call_indirect.wast.js:
347         * wasm/spec-tests/comments.wast.js:
348         * wasm/spec-tests/const.wast.js: Added.
349         * wasm/spec-tests/conversions.wast.js: Added.
350         * wasm/spec-tests/custom_section.wast.js:
351         * wasm/spec-tests/exports.wast.js:
352         * wasm/spec-tests/f32.wast.js: Added.
353         * wasm/spec-tests/f64.wast.js: Added.
354         * wasm/spec-tests/fac.wast.js:
355         * wasm/spec-tests/float_exprs.wast.js: Added.
356         * wasm/spec-tests/float_misc.wast.js: Added.
357         * wasm/spec-tests/func.wast.js:
358         * wasm/spec-tests/globals.wast.js:
359         * wasm/spec-tests/if.wast.js:
360         * wasm/spec-tests/imports.wast.js:
361         * wasm/spec-tests/inline-module.wast.js: Added.
362         * wasm/spec-tests/jsapi.js:
363         (testJSAPI.test):
364         (testJSAPI):
365         * wasm/spec-tests/labels.wast.js:
366         * wasm/spec-tests/loop.wast.js:
367         * wasm/spec-tests/memory.wast.js:
368         * wasm/spec-tests/memory_trap.wast.js: Added.
369         * wasm/spec-tests/names.wast.js:
370         * wasm/spec-tests/nop.wast.js:
371         * wasm/spec-tests/return.wast.js:
372         * wasm/spec-tests/stack.wast.js:
373         * wasm/spec-tests/token.wast.js: Added.
374         * wasm/spec-tests/type.wast.js: Added.
375         * wasm/spec-tests/typecheck.wast.js:
376         * wasm/spec-tests/unreachable.wast.js:
377         * wasm/spec-tests/unreached-invalid.wast.js:
378         * wasm/spec-tests/unwind.wast.js:
379         * wasm/spec-tests/utf8-custom-section-id.wast.js: Added.
380         * wasm/spec-tests/utf8-import-field.wast.js: Added.
381         * wasm/spec-tests/utf8-import-module.wast.js: Added.
382
383 2017-06-13  Ryan Haddad  <ryanhaddad@apple.com>
384
385         Unreviewed JSC test gardening.
386
387         * stress/check-string-ident.js:
388         * stress/new-largeish-contiguous-array-with-size.js:
389
390 2017-06-13  Michael Saboff  <msaboff@apple.com>
391
392         DFG doesn't properly handle a property that is change to read only in a prototype
393         https://bugs.webkit.org/show_bug.cgi?id=173321
394
395         Reviewed by Filip Pizlo.
396
397         * ChakraCore.yaml: Renabled fieldopts/objtypespec-newobj-invalidation.1.js.
398         * stress/regress-173321.js: Added new regression test.
399         (shouldBe):
400         (SimpleObject):
401         (test):
402
403 2017-06-12  Saam Barati  <sbarati@apple.com>
404
405         Update test262 test expectation since r218082 makes new tests pass.
406
407         * test262.yaml:
408
409 2017-06-12  Saam Barati  <sbarati@apple.com>
410
411         We should not claim that SpecEmpty is filtered out of cell checks on 64 bit platforms
412         https://bugs.webkit.org/show_bug.cgi?id=172957
413         <rdar://problem/32602704>
414
415         Reviewed by Filip Pizlo.
416
417         * stress/spec-empty-flows-through-cell-checks.js: Added.
418         (A):
419         (B):
420         (i.catch):
421
422 2017-06-12  Oleksandr Skachkov  <gskachkov@gmail.com>
423
424         We incorrectly allow escaped characters in keyword tokens
425         https://bugs.webkit.org/show_bug.cgi?id=171310
426
427         Reviewed by Yusuke Suzuki.
428
429         * stress/destructuring-assignment-syntax.js:
430         * stress/error-messages-for-in-operator-should-not-crash.js:
431         (catch):
432         * stress/reserved-word-with-escape.js:
433         (testSyntaxError.String.raw.v):
434         (String.raw.SyntaxError.Cannot.use.the.keyword.string_appeared_here.as.a.name):
435         (testSyntaxError.String.raw.a):
436         * JSTests/ChakraCore/test/Basics/IdsWithEscapes.baseline-jsc:
437
438 2017-06-09  Yusuke Suzuki  <utatane.tea@gmail.com>
439
440         [DFG] Add ArrayIndexOf intrinsic
441         https://bugs.webkit.org/show_bug.cgi?id=172421
442
443         Reviewed by Saam Barati.
444
445         * stress/array-indexof-array-prototype-change.js: Added.
446         (shouldBe):
447         (indexOfInt32):
448         * stress/array-indexof-have-a-bad-time-getter.js: Added.
449         (shouldBe):
450         (indexOfInt32):
451         * stress/array-indexof-have-a-bad-time.js: Added.
452         (shouldBe):
453         (indexOfInt32):
454         * stress/array-indexof-hole-with-prototype.js: Added.
455         (shouldBe):
456         (indexOf):
457         * stress/array-indexof-hole.js: Added.
458         (shouldBe):
459         (indexOf):
460         * stress/array-indexof-index.js: Added.
461         (shouldBe):
462         (indexOfInt32):
463         (indexOfDouble):
464         (indexOfString):
465         (indexOfObject):
466         (indexOfValue):
467         * stress/array-indexof-negative-index.js: Added.
468         (shouldBe):
469         (indexOfInt32):
470         (indexOfDouble):
471         (indexOfString):
472         (indexOfObject):
473         (indexOfValue):
474         * stress/array-indexof-non-int32-start-index.js: Added.
475         (shouldBe):
476         (indexOf):
477         (object.valueOf):
478         * stress/array-indexof-object-prototype-change.js: Added.
479         (shouldBe):
480         (indexOfInt32):
481         * stress/array-indexof-object.js: Added.
482         (shouldBe):
483         (indexOf):
484         * stress/array-indexof-original-array.js: Added.
485         (shouldBe):
486         (indexOfInt32):
487         * stress/array-indexof-string.js: Added.
488         (shouldBe):
489         (indexOf):
490         * stress/array-indexof-structure-change-convert.js: Added.
491         (shouldBe):
492         (indexOf):
493         * stress/array-indexof-structure-change.js: Added.
494         (shouldBe):
495         (indexOf):
496         * stress/array-indexof.js: Added.
497         (shouldBe):
498         (indexOf):
499
500 2017-06-11  Keith Miller  <keith_miller@apple.com>
501
502         TypedArray constructor with string shouldn't throw
503         https://bugs.webkit.org/show_bug.cgi?id=173181
504
505         Reviewed by JF Bastien.
506
507         We should be coercing primitive arguments to numbers in the various
508         TypedArray constructors.
509
510         * stress/typedarray-constructor.js:
511
512 2017-06-11  Yusuke Suzuki  <utatane.tea@gmail.com>
513
514         Unreviewed, update test results part 3
515         https://bugs.webkit.org/show_bug.cgi?id=173227
516
517         * microbenchmarks/regexp-prototype-search-observable-side-effects.js:
518
519 2017-06-10  Yusuke Suzuki  <utatane.tea@gmail.com>
520
521         Unreviewed, update test results part 2
522         https://bugs.webkit.org/show_bug.cgi?id=173227
523
524         * test262.yaml:
525
526 2017-06-10  Yusuke Suzuki  <utatane.tea@gmail.com>
527
528         Unreviewed, update test results
529         https://bugs.webkit.org/show_bug.cgi?id=173227
530
531         * microbenchmarks/string-prototype-search-observable-side-effects.js:
532         * test262.yaml:
533
534 2017-06-10  Yusuke Suzuki  <utatane.tea@gmail.com>
535
536         [JSC] Update RegExp.prototype.[@@search]] implementation according to the latest spec
537         https://bugs.webkit.org/show_bug.cgi?id=173227
538
539         Reviewed by Mark Lam.
540
541         Update the test.
542
543         * es6/Proxy_internal_get_calls_RegExp.prototype[Symbol.search].js:
544
545 2017-06-08  Keith Miller  <keith_miller@apple.com>
546
547         WebAssembly: We should only create wrappers for functions that can be exported
548         https://bugs.webkit.org/show_bug.cgi?id=173088
549
550         Reviewed by Saam Barati.
551
552         Remove a bunch of old tests that are actually duplicates of the spec-tests and rely
553         on the old testWasmModuleFunctions api, which has been removed.
554
555         * wasm/function-tests/copysign.js: Removed.
556         * wasm/function-tests/ctz.js: Removed.
557         * wasm/function-tests/drop.js: Removed.
558         * wasm/function-tests/dumb-eq-if-then-else.js: Removed.
559         * wasm/function-tests/dumb-less-than-fallthrough.js: Removed.
560         * wasm/function-tests/dumb-less-than-ite.js: Removed.
561         * wasm/function-tests/eqz.js: Removed.
562         * wasm/function-tests/i32-trunc-s-f32.js: Removed.
563         * wasm/function-tests/i32-trunc-s-f64.js: Removed.
564         * wasm/function-tests/i32-trunc-u-f32.js: Removed.
565         * wasm/function-tests/i32-trunc-u-f64.js: Removed.
566         * wasm/function-tests/i64-trunc-s-f32.js: Removed.
567         * wasm/function-tests/i64-trunc-s-f64.js: Removed.
568         * wasm/function-tests/i64-trunc-u-f32.js: Removed.
569         * wasm/function-tests/i64-trunc-u-f64.js: Removed.
570         * wasm/function-tests/if-then-else-fallthrough.js: Removed.
571         * wasm/function-tests/if-then-fallthrough.js: Removed.
572         * wasm/function-tests/int-to-floating-point.js: Removed.
573         * wasm/function-tests/loop-mult.js:
574         * wasm/function-tests/loop-sum.js:
575         * wasm/function-tests/max.js: Removed.
576         * wasm/function-tests/min.js: Removed.
577         * wasm/function-tests/nearest.js: Removed.
578         * wasm/function-tests/nop.js: Removed.
579         * wasm/function-tests/popcnt.js: Removed.
580         * wasm/function-tests/ret5.js:
581         * wasm/function-tests/select.js: Removed.
582         * wasm/function-tests/tee-local.js: Removed.
583         * wasm/function-tests/trunc.js: Removed.
584
585 2017-06-07  JF Bastien  <jfbastien@apple.com>
586
587         WebAssembly: test imports and exports with 16-bit characters
588         https://bugs.webkit.org/show_bug.cgi?id=165977
589         <rdar://problem/29760130>
590
591         Reviewed by Saam Barati.
592
593         The output for import failure was improved, so many tests need to
594         be updated here. Only one has new tests as noted below.
595
596         * wasm/function-tests/memory-import-and-grow.js:
597         * wasm/js-api/Instance.imports.exports.unicode.js: Added. Main new test.
598         (idxModule):
599         * wasm/js-api/global-error.js:
600         (new.Number):
601         (assert.throws):
602         * wasm/js-api/table.js:
603         (assert.throws):
604         (new.WebAssembly.Table):
605         * wasm/js-api/test_memory.js:
606         (test):
607         * wasm/js-api/wasm-to-wasm-bad-signature.js:
608         (BadSignatureDropStartParams.):
609         (BadSignatureDropStartParams):
610         (BadSignatureDropEndParams.):
611         (BadSignatureSwapParam.):
612         (BadSignatureRet.):
613         * wasm/js-api/web-assembly-instantiate.js:
614         (assert.asyncTest.async.test):
615         (assert.asyncTest):
616         * wasm/js-api/wrapper-function.js:
617         (return.new.WebAssembly.Module):
618
619 2017-06-07  Mark Lam  <mark.lam@apple.com>
620
621         Restrict the regress-173035.js test to only run on Darwin x86-64.
622         https://bugs.webkit.org/show_bug.cgi?id=173075
623
624         Reviewed by Saam Barati.
625
626         This is because the 32-bit x86 build will fail to mmap the 0x3f900000 bytes that
627         this test will require to succeed.  Here's an example of this failure:
628         https://build.webkit.org/builders/Apple%20Sierra%2032-bit%20JSC%20%28BuildAndTest%29/builds/866/steps/webkit-32bit-jsc-test/logs/stdio
629
630         Since the issue is due to allocation of a very large amount of memory, the test
631         will probably fail on iOS and other platforms as well.  Hence, we should just
632         skip this test for any platforms that is not Darwin x86-64.
633
634         * stress/regress-173035.js:
635
636 2017-06-07  Mark Lam  <mark.lam@apple.com>
637
638         ASSERTION failure: !masqueradesAsUndefinedWatchpointIsStillValid() || !isKnownCell(operand.node())
639         https://bugs.webkit.org/show_bug.cgi?id=168587
640
641         Not reviewed.
642
643         Unskipping the test because the issue has been fixed in https://bugs.webkit.org/show_bug.cgi?id=172673.
644
645         * stress/test-finally.js:
646
647 2017-06-06  Mark Lam  <mark.lam@apple.com>
648
649         Contiguous storage butterfly length should not exceed MAX_STORAGE_VECTOR_LENGTH.
650         https://bugs.webkit.org/show_bug.cgi?id=173035
651         <rdar://problem/32554593>
652
653         Reviewed by Geoffrey Garen and Filip Pizlo.
654
655         * stress/regress-173035.js: Added.
656
657 2017-06-06  Saam Barati  <sbarati@apple.com>
658
659         Make sure we restore SP when doing calls that could be to JS
660         https://bugs.webkit.org/show_bug.cgi?id=172946
661         <rdar://problem/32579026>
662
663         Reviewed by JF Bastien.
664
665         * wasm/function-tests/many-args-tail-call-sp-restored.js: Added.
666         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.f1):
667         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.end):
668         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.f2):
669         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.let.instance.new.WebAssembly.Instance.new.WebAssembly.Module.builder.WebAssembly):
670
671 2017-06-06  Joseph Pecoraro  <pecoraro@apple.com>
672
673         Unreviewed rollout r217807. Caused a test to crash.
674
675         * heapProfiler/class-names.js: Removed.
676         * heapProfiler/driver/driver.js:
677         (CheapHeapSnapshotNode):
678         (CheapHeapSnapshot):
679         (createCheapHeapSnapshot):
680         (HeapSnapshot):
681         (createHeapSnapshot):
682         * typeProfiler/inheritance.js:
683         (wrapper.A):
684         (wrapper.B):
685         (wrapper.C):
686         (wrapper):
687
688 2017-06-06  Filip Pizlo  <fpizlo@apple.com>
689
690         index out of bound in bytecodebasicblock
691         https://bugs.webkit.org/show_bug.cgi?id=172963
692
693         Reviewed by Saam Barati and Mark Lam.
694
695         * stress/dfg-call-class-constructor.js: Added.
696         (Foo):
697         (i.catch):
698
699 2017-06-05  Joseph Pecoraro  <pecoraro@apple.com>
700
701         Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view
702         https://bugs.webkit.org/show_bug.cgi?id=172848
703         <rdar://problem/25709212>
704
705         Reviewed by Saam Barati.
706
707         * typeProfiler/inheritance.js:
708         Rewrite the test slightly for clarity. The hoisting was confusing.
709
710         * heapProfiler/class-names.js: Added.
711         (MyES5Class):
712         (MyES6Class):
713         (MyES6Subclass):
714         Test object types and improved class names.
715
716         * heapProfiler/driver/driver.js:
717         (CheapHeapSnapshotNode):
718         (CheapHeapSnapshot):
719         (createCheapHeapSnapshot):
720         (HeapSnapshot):
721         (createHeapSnapshot):
722         Update snapshot parsing from version 1 to version 2.
723
724 2017-06-02  Yusuke Suzuki  <utatane.tea@gmail.com>
725
726         ASSERTION FAILED: "We should only declare a function as a lexically scoped variable in scopes where var declarations aren't allowed. ..." for function redeclaration with async function module export
727         https://bugs.webkit.org/show_bug.cgi?id=168844
728
729         Reviewed by Saam Barati.
730
731         * modules/async-function-export.js: Added.
732         (f):
733         (export.async.f):
734
735 2017-06-02  Yusuke Suzuki  <utatane.tea@gmail.com>
736
737         ES2015 modules - Export default function hoisting
738         https://bugs.webkit.org/show_bug.cgi?id=170174
739
740         Reviewed by Saam Barati.
741
742         This issue itself is solved by fixing function declaration hoisting rules.
743         This patch just adds the specific test to modules tests to ensure the bug
744         is fixed.
745
746         * modules/export-default-function-hoisting.js: Added.
747         * modules/export-default-function-hoisting/cappuccino.js: Added.
748         (import.drinkCocoa.from.string_appeared_here.export.default.drinkCappuccino):
749         * modules/export-default-function-hoisting/cocoa.js: Added.
750         (export.default.drinkCocoa):
751
752 2017-06-01  Oleksandr Skachkov  <gskachkov@gmail.com>
753
754         Class Proxy can't be extended
755         https://bugs.webkit.org/show_bug.cgi?id=169040
756
757         Reviewed by Saam Barati.
758
759         Adding tests that check correctness of Proxy to ES6 `class`
760         Bug is already fixed in https://bugs.webkit.org/show_bug.cgi?id=164849
761
762         * stress/proxy-class.js: Added.
763         (assert):
764         (throw.new.Error.SuperClass):
765         (throw.new.Error.A):
766         (throw.new.Error):
767
768 2017-05-31  Yusuke Suzuki  <utatane.tea@gmail.com>
769
770         [JSC] Implement String.prototype.concat in JS builtins
771         https://bugs.webkit.org/show_bug.cgi?id=172798
772
773         Reviewed by Sam Weinig.
774
775         * microbenchmarks/string-concat-convert.js: Added.
776         (test):
777         * microbenchmarks/string-concat-long-convert.js: Added.
778         (test):
779         * microbenchmarks/string-concat-long.js: Added.
780         (test):
781         * microbenchmarks/string-concat.js: Added.
782         (test):
783
784 2017-05-31  Oleksandr Skachkov  <gskachkov@gmail.com>
785
786         Rolling out: Prevent async methods named 'function'
787         https://bugs.webkit.org/show_bug.cgi?id=172776
788
789         Reviewed by Mark Lam.
790
791         * stress/async-await-syntax.js:
792         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
793         (testTopLevelAsyncAwaitSyntaxSloppyMode):
794         (prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
795         (prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
796         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
797
798 2017-05-31  Ryan Haddad  <ryanhaddad@apple.com>
799
800         Skip flaky JSC test stress/test-finally.js
801         https://bugs.webkit.org/show_bug.cgi?id=168587
802
803         Unreviewed test gardening.
804
805         * stress/test-finally.js:
806
807 2017-05-30  Oleksandr Skachkov  <gskachkov@gmail.com>
808
809         Prevent async methods named 'function' in Object literal
810         https://bugs.webkit.org/show_bug.cgi?id=172660
811
812         Reviewed by Saam Barati.
813
814         * stress/async-await-syntax.js:
815         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
816
817 2017-05-30  Oleksandr Skachkov  <gskachkov@gmail.com>
818
819         ASSERTION FAILED: generator.isConstructor() || generator.derivedContextType() == DerivedContextType::DerivedConstructorContext
820         https://bugs.webkit.org/show_bug.cgi?id=171274
821
822         Reviewed by Saam Barati.
823
824         * stress/async-arrow-functions-lexical-binding-in-class.js:
825         (shouldBeAsync):
826         (shouldBeAsyncAndStoreBind):
827         (promise.new.Promise):
828         (ChildClass4):
829         (ChildClass4.prototype.classValue):
830         (ChildClass4.prototype.get classProperty):
831         * stress/async-arrow-functions-lexical-super-binding.js:
832         (A):
833         (const.childA1.new.prototype.var.f.async):
834         (const.childA1.new.var):
835         (const.childA1.new):
836         (const.childA2.new.prototype.var.f.async):
837         (const.childA2.new.var):
838         (const.childA2.new):
839         (const.childA3.new.prototype.var.f.async):
840         (const.childA3.new.var):
841         (const.childA3.new):
842         (try.childA4.new.prototype.var.f.async):
843         (try.childA4.new.var):
844         (try.childA4.new):
845         (catch):
846         (const.childA5.new.prototype.var.f.async):
847         (const.childA5.new.var):
848         (const.childA5.new):
849         (checkClass):
850         (checkClass.new.prototype.var.f.async):
851         (checkClass.new.var):
852         (checkClass.new):
853         (checkClass.new.prototype.method):
854         (checkClass.new.prototype.prop):
855
856 2017-05-27  Yusuke Suzuki  <utatane.tea@gmail.com>
857
858         [JSC] Map and Set constructors should have fast path for cloning
859         https://bugs.webkit.org/show_bug.cgi?id=172413
860
861         Reviewed by Saam Barati.
862
863         * stress/map-clone-instance-iterator-change.js: Added.
864         (shouldBe):
865         (map.Symbol.iterator):
866         * stress/map-clone-iterator-change.js: Added.
867         (shouldBe):
868         (Map.prototype.Symbol.iterator):
869         * stress/map-clone-next-change.js: Added.
870         (shouldBe):
871         (map.Symbol.iterator.__proto__.next):
872         * stress/map-clone.js: Added.
873         (shouldBe):
874         (Map.prototype):
875         * stress/map-inherit-set.js: Added.
876         (shouldBe):
877         (DerivedMap):
878         (set for):
879         * stress/set-clone-instance-iterator-change.js: Added.
880         (shouldBe):
881         (set Symbol.iterator):
882         * stress/set-clone-iterator-change.js: Added.
883         (shouldBe):
884         (set Set.prototype.Symbol.iterator):
885         * stress/set-clone-next-change.js: Added.
886         (shouldBe):
887         (set Symbol.iterator.__proto__.next):
888         * stress/set-clone.js: Added.
889         (shouldBe):
890         (set Set.prototype.add):
891         * stress/set-inherit-add.js: Added.
892         (shouldBe):
893         (DerivedSet.set add):
894
895 2017-05-26  Ryan Haddad  <ryanhaddad@apple.com>
896
897         Unreviewed, rolling out r217458.
898
899         This change caused 55 JSC test failures.
900
901         Reverted changeset:
902
903         "Date should use historical data if it's available."
904         https://bugs.webkit.org/show_bug.cgi?id=172592
905         http://trac.webkit.org/changeset/217458
906
907 2017-05-26  Yusuke Suzuki  <utatane.tea@gmail.com>
908
909         Give ModuleProgram the same treatment that we did for ProgramCode in bug#167725
910         https://bugs.webkit.org/show_bug.cgi?id=167805
911
912         Reviewed by Saam Barati.
913
914         * modules/module-jit-reachability.js: Added.
915
916 2017-05-26  Oleksandr Skachkov  <gskachkov@gmail.com>
917
918         Prevent async methods named 'function'
919         https://bugs.webkit.org/show_bug.cgi?id=172598
920
921         Reviewed by Mark Lam.
922
923         * stress/async-await-syntax.js:
924         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
925         (testTopLevelAsyncAwaitSyntaxSloppyMode):
926         (prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
927         (prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
928         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
929
930 2017-05-25  Keith Miller  <keith_miller@apple.com>
931
932         Date should use historical data if it's available.
933         https://bugs.webkit.org/show_bug.cgi?id=172592
934
935         Reviewed by Mark Lam.
936
937         Remove parts of the date tests that rely on the absence of
938         historical data in Date.
939
940         * mozilla/ecma/Date/15.9.5.31-1.js:
941         (getTestCases):
942         * mozilla/ecma/Date/15.9.5.35-1.js:
943         (getTestCases):
944
945 2017-05-25  Saam Barati  <sbarati@apple.com>
946
947         Our for-in optimization in the bytecode generator does its static analysis incorrectly
948         https://bugs.webkit.org/show_bug.cgi?id=172532
949         <rdar://problem/32369452>
950
951         Reviewed by Mark Lam.
952
953         * stress/for-in-invalidation-for-any-write.js: Added.
954         (assert):
955         (test):
956         (test.i):
957
958 2017-05-25  Mark Lam  <mark.lam@apple.com>
959
960         ObjectToStringAdaptiveInferredPropertyValueWatchpoint should not reinstall itself nor handleFire if it's dying shortly.
961         https://bugs.webkit.org/show_bug.cgi?id=172548
962         <rdar://problem/31458393>
963
964         Reviewed by Filip Pizlo.
965
966         * stress/regress-172548.patch: Added.
967
968 2017-05-23  Saam Barati  <sbarati@apple.com>
969
970         We should not mmap zero bytes for a memory in Wasm
971         https://bugs.webkit.org/show_bug.cgi?id=172528
972         <rdar://problem/32257076>
973
974         Reviewed by Mark Lam.
975
976         * wasm/js-api/dont-mmap-zero-byte-memory.js: Added.
977         (testMems):
978
979 2017-05-23  Saam Barati  <sbarati@apple.com>
980
981         CFGSimplificationPhase should not merge a block with itself
982         https://bugs.webkit.org/show_bug.cgi?id=172508
983         <rdar://problem/28424006>
984
985         Reviewed by Keith Miller.
986
987         * stress/dont-crash-in-cfg-simplification.js: Added.
988         (bar):
989         (baz):
990         (foo):
991
992 2017-05-20  Yusuke Suzuki  <utatane.tea@gmail.com>
993
994         [FTL] Support GetByVal with ArrayStorage and SlowPutArrayStorage
995         https://bugs.webkit.org/show_bug.cgi?id=172216
996
997         Reviewed by Saam Barati.
998
999         * stress/array-storage-get-by-val.js: Added.
1000         (shouldBe):
1001         (testOutOfBound):
1002         (testInBound):
1003         (testSlowPutOutOfBound):
1004         (testSlowPutInBound):
1005
1006 2017-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
1007
1008         Unreviewed, fix commented out tests
1009         https://bugs.webkit.org/show_bug.cgi?id=172225
1010
1011         * stress/get-by-val-string.js:
1012         (object.43):
1013         (Hello):
1014         (Hello.prototype.get 42):
1015         (Hello.prototype.43):
1016         (Derived):
1017         (shouldBe):
1018         (throw.new.Error): Deleted.
1019
1020 2017-05-21  Saam Barati  <sbarati@apple.com>
1021
1022         We incorrectly throw a syntax error when declaring a top level for-loop iteration variable the same as a parameter
1023         https://bugs.webkit.org/show_bug.cgi?id=171041
1024         <rdar://problem/32082516>
1025
1026         Reviewed by Yusuke Suzuki.
1027
1028         * stress/lexical-scoping-for-loop.js: Added.
1029         (assert):
1030         (test1):
1031         (test2):
1032         (test3):
1033         (test4):
1034         (test5):
1035         (test6):
1036         (let.test7):
1037         (let.test8):
1038         (let.test9):
1039         (let.test10):
1040         (let.test11):
1041         (let.test12):
1042
1043 2017-05-19  Yusuke Suzuki  <utatane.tea@gmail.com>
1044
1045         [JSC] Make get_by_val & string "499" to number 499
1046         https://bugs.webkit.org/show_bug.cgi?id=172225
1047
1048         Reviewed by Saam Barati.
1049
1050         * stress/get-by-val-string.js: Added.
1051         (shouldBe):
1052         (shouldThrow):
1053         (object.43):
1054         (Hello):
1055         (Hello.prototype.get 42):
1056         (Hello.prototype.43):
1057         (Derived):
1058
1059 2017-05-19  Mark Lam  <mark.lam@apple.com>
1060
1061         [Re-landing] DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
1062         https://bugs.webkit.org/show_bug.cgi?id=172383
1063         <rdar://problem/31418651>
1064
1065         Reviewed by Filip Pizlo.
1066
1067         * stress/regress-172383.js: Added.
1068
1069 2017-05-19  Ryan Haddad  <ryanhaddad@apple.com>
1070
1071         Unreviewed, rolling out r217156.
1072
1073         This change broke the iOS build.
1074
1075         Reverted changeset:
1076
1077         "DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring
1078         result registers."
1079         https://bugs.webkit.org/show_bug.cgi?id=172383
1080         http://trac.webkit.org/changeset/217156
1081
1082 2017-05-19  Mark Lam  <mark.lam@apple.com>
1083
1084         Add missing exception check.
1085         https://bugs.webkit.org/show_bug.cgi?id=172346
1086         <rdar://problem/32289640>
1087
1088         Reviewed by Geoffrey Garen.
1089
1090         * stress/regress-172346.js: Added.
1091
1092 2017-05-19  Mark Lam  <mark.lam@apple.com>
1093
1094         DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
1095         https://bugs.webkit.org/show_bug.cgi?id=172383
1096         <rdar://problem/31418651>
1097
1098         Reviewed by Filip Pizlo.
1099
1100         * stress/regress-172383.js: Added.
1101
1102 2017-05-19  Filip Pizlo  <fpizlo@apple.com>
1103
1104         arrayProtoPrivateFuncConcatMemcpy needs to be down with firstArray being undecided
1105         https://bugs.webkit.org/show_bug.cgi?id=172369
1106
1107         Reviewed by Mark Lam.
1108
1109         * stress/undecided-concat.js: Added.
1110
1111 2017-05-19  Yusuke Suzuki  <utatane.tea@gmail.com>
1112
1113         [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
1114         https://bugs.webkit.org/show_bug.cgi?id=172098
1115
1116         Reviewed by Saam Barati.
1117
1118         * stress/check-sub-class.js: Added.
1119         (shouldBe):
1120         (shouldThrow):
1121         (calling):
1122         (array.forEach):
1123         (i.array.forEach):
1124
1125 2017-05-18  JF Bastien  <jfbastien@apple.com>
1126
1127         WebAssembly: exports is a getter
1128         https://bugs.webkit.org/show_bug.cgi?id=172129
1129
1130         Reviewed by Saam Barati.
1131
1132         Update test to reflect new semantics.
1133
1134         * wasm/js-api/test_basic_api.js:
1135         (const.c.in.constructorProperties.switch):
1136
1137 2017-05-18  Saam Barati  <sbarati@apple.com>
1138
1139         Proxy's [[Get]] passes incorrect receiver
1140         https://bugs.webkit.org/show_bug.cgi?id=164849
1141         <rdar://problem/31767058>
1142
1143         Reviewed by Yusuke Suzuki.
1144
1145         * stress/proxy-get-set-correct-receiver.js: Added.
1146         (assert):
1147         (test):
1148         (test.let.target.set prop):
1149         (test.let.target.get prop):
1150         (test.get let):
1151         * stress/proxy-set.js:
1152         (let.target.get x):
1153         * stress/reflect-set-proxy-set.js:
1154         (let.target.get x):
1155         * stress/reflect-set-receiver-proxy-set.js:
1156         (let.target.get x):
1157
1158 2017-05-18  Filip Pizlo  <fpizlo@apple.com>
1159
1160         Constructor calls set this too early
1161         https://bugs.webkit.org/show_bug.cgi?id=172302
1162
1163         Reviewed by Saam Barati.
1164         
1165         This tests all three kinds of constructs in BytecodeGenerator. All three were previously
1166         wrong.
1167
1168         * stress/construct-overwritten-variable.js: Added.
1169         (new.x.x):
1170         * stress/construct-spread-overwritten-variable-2.js: Added.
1171         (new.x.x):
1172         * stress/construct-spread-overwritten-variable.js: Added.
1173         (new.x.x):
1174
1175 2017-05-18  Saam Barati  <sbarati@apple.com>
1176
1177         WebAssembly: perform stack checks
1178         https://bugs.webkit.org/show_bug.cgi?id=165546
1179         <rdar://problem/29760307>
1180
1181         Reviewed by Filip Pizlo.
1182
1183         * wasm.yaml:
1184         * wasm/function-tests/factorial.js:
1185         * wasm/function-tests/float-sub.js:
1186         * wasm/function-tests/stack-overflow.js: Added.
1187         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
1188         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
1189         (assertOverflows.makeInstance):
1190         (assertOverflows.makeInstance2):
1191         (assertOverflows.assertThrows):
1192         (assertOverflows):
1193         (assertThrows.test.makeSignature):
1194         (assertThrows.test.makeInstance):
1195         (assertThrows.test):
1196         (assertThrows):
1197
1198 2017-05-18  Keith Miller  <keith_miller@apple.com>
1199
1200         WebAssembly API: test with neutered inputs
1201         https://bugs.webkit.org/show_bug.cgi?id=163899
1202
1203         Reviewed by JF Bastien.
1204
1205         * wasm/js-api/neutered-inputs.js: Added.
1206         (const.testFunction):
1207         (const.testConstructor):
1208         * wasm/js-api/test_basic_api.js:
1209         (const.c.in.constructorProperties.switch):
1210
1211 2017-05-18  Filip Pizlo  <fpizlo@apple.com>
1212
1213         DFG inlining should be hardened for the no-result case
1214         https://bugs.webkit.org/show_bug.cgi?id=172290
1215
1216         Reviewed by Saam Barati.
1217
1218         * stress/array-constructor-no-result.js: Added.
1219         (foo):
1220         * stress/pow-no-result.js: Added.
1221         (foo):
1222
1223 2017-05-18  Commit Queue  <commit-queue@webkit.org>
1224
1225         Unreviewed, rolling out r217031, r217032, and r217037.
1226         https://bugs.webkit.org/show_bug.cgi?id=172293
1227
1228         cause linking errors in Windows (Requested by yusukesuzuki on
1229         #webkit).
1230
1231         Reverted changesets:
1232
1233         "[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass"
1234         https://bugs.webkit.org/show_bug.cgi?id=172098
1235         http://trac.webkit.org/changeset/217031
1236
1237         "Unreviewed, rebaseline for newly added ClassInfo"
1238         https://bugs.webkit.org/show_bug.cgi?id=172098
1239         http://trac.webkit.org/changeset/217032
1240
1241         "Unreviewed, fix debug and non-JIT build"
1242         https://bugs.webkit.org/show_bug.cgi?id=172098
1243         http://trac.webkit.org/changeset/217037
1244
1245 2017-05-16  Yusuke Suzuki  <utatane.tea@gmail.com>
1246
1247         [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
1248         https://bugs.webkit.org/show_bug.cgi?id=172098
1249
1250         Reviewed by Saam Barati.
1251
1252         * stress/check-sub-class.js: Added.
1253         (shouldBe):
1254         (shouldThrow):
1255         (calling):
1256         (array.forEach):
1257         (i.array.forEach):
1258
1259 2017-05-17  Filip Pizlo  <fpizlo@apple.com>
1260
1261         Unreviewed, address mlam's review feedback.
1262
1263         * stress/arguments-elimination-varargs-too-many-args-arg-count.js:
1264
1265 2017-05-17  Saam Barati  <sbarati@apple.com>
1266
1267         We don't do context switches for Wasm->Wasm call indirect
1268         https://bugs.webkit.org/show_bug.cgi?id=172188
1269         <rdar://problem/32231828>
1270
1271         Reviewed by Keith Miller.
1272
1273         * wasm/function-tests/context-switch.js: Added.
1274         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
1275         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance2):
1276         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.i2.makeInstance2):
1277         (makeInstance):
1278         (makeInstance2):
1279         (assert.eq.makeInstance):
1280         (assert.eq.makeInstance2):
1281         (assert.eq):
1282
1283 2017-05-17  Filip Pizlo  <fpizlo@apple.com>
1284
1285         JSC: Incorrect LoadVarargs handling in ArgumentsEliminationPhase::transform
1286         https://bugs.webkit.org/show_bug.cgi?id=172208
1287
1288         Reviewed by Saam Barati.
1289
1290         * stress/arguments-elimination-varargs-too-many-args-arg-count.js: Added.
1291         (foo):
1292         (bar):
1293         (baz):
1294
1295 2017-05-16  Yusuke Suzuki  <utatane.tea@gmail.com>
1296
1297         [DFG] Constant Folding Phase should convert MakeRope("", String) => Identity(String)
1298         https://bugs.webkit.org/show_bug.cgi?id=172115
1299
1300         Reviewed by Saam Barati.
1301
1302         * stress/constant-folding-should-fold-make-rope-with-empty-strings.js: Added.
1303         (shouldBe):
1304         (unknown):
1305         (readWord1):
1306         (readWord2):
1307         (readWord3):
1308         (readWord4):
1309
1310 2017-05-16  JF Bastien  <jfbastien@apple.com>
1311
1312         WebAssembly: add memory fuzzer
1313         https://bugs.webkit.org/show_bug.cgi?id=169976
1314         <rdar://problem/31965328>
1315
1316         Reviewed by Keith Miller.
1317
1318         * wasm/fuzz/memory.js: Added.
1319         (const.insert):
1320         (const.action.string_appeared_here):
1321         (const.performAction):
1322         (catch):
1323
1324 2017-05-16  JF Bastien  <jfbastien@apple.com>
1325
1326         WebAssembly: validate load / store alignment
1327         https://bugs.webkit.org/show_bug.cgi?id=168836
1328         <rdar://problem/31965349>
1329
1330         Reviewed by Keith Miller.
1331
1332         * wasm/WASM.js: fix regular expression greed
1333         * wasm/function-tests/memory-alignment.js: Added.
1334         (const.op.of.WASM.opcodes):
1335         * wasm/wasm.json: fix formatting
1336
1337 2017-05-15  Mark Lam  <mark.lam@apple.com>
1338
1339         Rolling out r214038 and r213697: Crashes when using computed properties with rest destructuring and object spread.
1340         https://bugs.webkit.org/show_bug.cgi?id=172147
1341
1342         Rubber-stamped by Saam Barati.
1343
1344         * stress/object-rest-deconstruct.js: Removed.
1345         * stress/object-spread.js: Removed.
1346
1347 2017-05-11  JF Bastien  <jfbastien@apple.com>
1348
1349         WebAssembly: stop supporting 0xD
1350         https://bugs.webkit.org/show_bug.cgi?id=168788
1351         <rdar://problem/31880922>
1352
1353         Reviewed by Saam Barati.
1354
1355         Test that only version 1 is supported.
1356
1357         * wasm/js-api/version.js: Added.
1358
1359 2017-05-10  JF Bastien  <jfbastien@apple.com>
1360
1361         WebAssemby: builder doesn't do Memory section maximum correctly
1362         https://bugs.webkit.org/show_bug.cgi?id=171931
1363
1364         Reviewed by Keith Miller.
1365
1366         * wasm/Builder.js:
1367         (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
1368         * wasm/Builder_WebAssemblyBinary.js:
1369         (const.emitters.Memory):
1370         * wasm/function-tests/memory-grow-invalid.js: Added.
1371
1372 2017-05-10  JF Bastien  <jfbastien@apple.com>
1373
1374         WebAssembly: support name section
1375         https://bugs.webkit.org/show_bug.cgi?id=171263
1376
1377         Reviewed by Keith Miller.
1378
1379         * wasm/function-tests/nameSection.js: Added.
1380         (const.compile):
1381         * wasm/function-tests/nameSection.wasm: Added.
1382         * wasm/function-tests/stack-trace.js: Update format
1383
1384 2017-05-10  Filip Pizlo  <fpizlo@apple.com>
1385
1386         Null pointer dereference in WTF::RefPtr<WTF::StringImpl>::operator!() under slow_path_get_direct_pname
1387         https://bugs.webkit.org/show_bug.cgi?id=171801
1388
1389         Reviewed by Michael Saboff.
1390         
1391         These tests used to crash. The prefix and postfix tests cover different paths, except
1392         postfix-ignored goes down the same path as prefix due to an optimization.
1393
1394         * stress/for-in-postfix-ignored-index.js: Added.
1395         (foo):
1396         * stress/for-in-postfix-index.js: Added.
1397         (foo):
1398         * stress/for-in-prefix-index.js: Added.
1399         (foo):
1400
1401 2017-05-08  Mark Lam  <mark.lam@apple.com>
1402
1403         op_throw_static_error's use of its first operand should be reflected in DFG BytecodeUseDef as well.
1404         https://bugs.webkit.org/show_bug.cgi?id=171786
1405         <rdar://problem/32051023>
1406
1407         Reviewed by Saam Barati.
1408
1409         * stress/bug-171786.js: Added.
1410
1411 2017-05-06  Oleksandr Skachkov  <gskachkov@gmail.com>
1412
1413         [ES6] Arrow function. Issue in access to this after eval('super()') within constructor
1414         https://bugs.webkit.org/show_bug.cgi?id=171543
1415
1416         Reviewed by Saam Barati.
1417
1418         * stress/arrowfunction-lexical-bind-supercall-4.js:
1419         (J):
1420         (K):
1421
1422 2017-05-05  Saam Barati  <sbarati@apple.com>
1423
1424         putDirectIndex does not properly do defineOwnProperty
1425         https://bugs.webkit.org/show_bug.cgi?id=171591
1426         <rdar://problem/31735695>
1427
1428         Reviewed by Geoffrey Garen.
1429
1430         * stress/array-prototype-splice-making-typed-array.js:
1431         (test):
1432         * stress/array-species-config-array-constructor.js:
1433         (shouldThrow):
1434         (test):
1435         * stress/put-direct-index-broken-2.js: Added.
1436         (assert):
1437         (test):
1438         (makeLengthWritable):
1439         (set get restoreOldDesc):
1440         * stress/put-direct-index-broken.js: Added.
1441         (whatToTest):
1442         (tryRunning):
1443         (tryItOut):
1444         * stress/put-indexed-getter-setter.js: Added.
1445         (foo.X.prototype.set 7):
1446         (foo.X.prototype.get 7):
1447         (foo.X):
1448         (foo):
1449
1450 2017-05-04  Yusuke Suzuki  <utatane.tea@gmail.com>
1451
1452         [JSC] Math unary functions should be handled by DFG
1453         https://bugs.webkit.org/show_bug.cgi?id=171269
1454
1455         Reviewed by Saam Barati.
1456
1457         * stress/arith-acos-on-various-types.js: Added.
1458         (let.validInputTypedTestCases.validInputTestCases.map):
1459         (isIdentical):
1460         (opaqueACosNoArgument):
1461         (testNoArgument):
1462         (opaqueAllTypesACos):
1463         (testAllTypesCall):
1464         (testSingleTypeCall):
1465         (testConstant):
1466         (opaqueACosForSideEffects):
1467         (testSideEffect.let.testObject.valueOf):
1468         (testSideEffect):
1469         (opaqueACosForCSE):
1470         (testCSE.let.testObject.valueOf):
1471         (testCSE):
1472         (opaqueACosForDCE):
1473         (testDCE.let.testObject.valueOf):
1474         (testDCE):
1475         (testException.opaqueACosWithException):
1476         (testException):
1477         * stress/arith-acosh-on-various-types.js: Added.
1478         (let.validInputTypedTestCases.validInputTestCases.map):
1479         (isIdentical):
1480         (opaqueACoshNoArgument):
1481         (testNoArgument):
1482         (opaqueAllTypesACosh):
1483         (testAllTypesCall):
1484         (testSingleTypeCall):
1485         (testConstant):
1486         (opaqueACoshForSideEffects):
1487         (testSideEffect.let.testObject.valueOf):
1488         (testSideEffect):
1489         (opaqueACoshForCSE):
1490         (testCSE.let.testObject.valueOf):
1491         (testCSE):
1492         (opaqueACoshForDCE):
1493         (testDCE.let.testObject.valueOf):
1494         (testDCE):
1495         (testException.opaqueACoshWithException):
1496         (testException):
1497         * stress/arith-asin-on-various-types.js: Added.
1498         (let.validInputTypedTestCases.validInputTestCases.map):
1499         (isIdentical):
1500         (opaqueASinNoArgument):
1501         (testNoArgument):
1502         (opaqueAllTypesASin):
1503         (testAllTypesCall):
1504         (testSingleTypeCall):
1505         (testConstant):
1506         (opaqueASinForSideEffects):
1507         (testSideEffect.let.testObject.valueOf):
1508         (testSideEffect):
1509         (opaqueASinForCSE):
1510         (testCSE.let.testObject.valueOf):
1511         (testCSE):
1512         (opaqueASinForDCE):
1513         (testDCE.let.testObject.valueOf):
1514         (testDCE):
1515         (testException.opaqueASinWithException):
1516         (testException):
1517         * stress/arith-asinh-on-various-types.js: Added.
1518         (let.validInputTypedTestCases.validInputTestCases.map):
1519         (isIdentical):
1520         (opaqueASinhNoArgument):
1521         (testNoArgument):
1522         (opaqueAllTypesASinh):
1523         (testAllTypesCall):
1524         (testSingleTypeCall):
1525         (testConstant):
1526         (opaqueASinhForSideEffects):
1527         (testSideEffect.let.testObject.valueOf):
1528         (testSideEffect):
1529         (opaqueASinhForCSE):
1530         (testCSE.let.testObject.valueOf):
1531         (testCSE):
1532         (opaqueASinhForDCE):
1533         (testDCE.let.testObject.valueOf):
1534         (testDCE):
1535         (testException.opaqueASinhWithException):
1536         (testException):
1537         * stress/arith-atan-on-various-types.js: Added.
1538         (let.validInputTypedTestCases.validInputTestCases.map):
1539         (isIdentical):
1540         (opaqueATanNoArgument):
1541         (testNoArgument):
1542         (opaqueAllTypesATan):
1543         (testAllTypesCall):
1544         (testSingleTypeCall):
1545         (testConstant):
1546         (opaqueATanForSideEffects):
1547         (testSideEffect.let.testObject.valueOf):
1548         (testSideEffect):
1549         (opaqueATanForCSE):
1550         (testCSE.let.testObject.valueOf):
1551         (testCSE):
1552         (opaqueATanForDCE):
1553         (testDCE.let.testObject.valueOf):
1554         (testDCE):
1555         (testException.opaqueATanWithException):
1556         (testException):
1557         * stress/arith-atanh-on-various-types.js: Added.
1558         (let.validInputTypedTestCases.validInputTestCases.map):
1559         (isIdentical):
1560         (opaqueATanhNoArgument):
1561         (testNoArgument):
1562         (opaqueAllTypesATanh):
1563         (testAllTypesCall):
1564         (testSingleTypeCall):
1565         (testConstant):
1566         (opaqueATanhForSideEffects):
1567         (testSideEffect.let.testObject.valueOf):
1568         (testSideEffect):
1569         (opaqueATanhForCSE):
1570         (testCSE.let.testObject.valueOf):
1571         (testCSE):
1572         (opaqueATanhForDCE):
1573         (testDCE.let.testObject.valueOf):
1574         (testDCE):
1575         (testException.opaqueATanhWithException):
1576         (testException):
1577         * stress/arith-cbrt-on-various-types.js: Added.
1578         (let.validInputTypedTestCases.validInputTestCases.map):
1579         (isIdentical):
1580         (opaqueCbrtNoArgument):
1581         (testNoArgument):
1582         (opaqueAllTypesCbrt):
1583         (testAllTypesCall):
1584         (testSingleTypeCall):
1585         (testConstant):
1586         (opaqueCbrtForSideEffects):
1587         (testSideEffect.let.testObject.valueOf):
1588         (testSideEffect):
1589         (opaqueCbrtForCSE):
1590         (testCSE.let.testObject.valueOf):
1591         (testCSE):
1592         (opaqueCbrtForDCE):
1593         (testDCE.let.testObject.valueOf):
1594         (testDCE):
1595         (testException.opaqueCbrtWithException):
1596         (testException):
1597         * stress/arith-cosh-on-various-types.js: Added.
1598         (let.validInputTypedTestCases.validInputTestCases.map):
1599         (isIdentical):
1600         (opaqueCoshNoArgument):
1601         (testNoArgument):
1602         (opaqueAllTypesCosh):
1603         (testAllTypesCall):
1604         (testSingleTypeCall):
1605         (testConstant):
1606         (opaqueCoshForSideEffects):
1607         (testSideEffect.let.testObject.valueOf):
1608         (testSideEffect):
1609         (opaqueCoshForCSE):
1610         (testCSE.let.testObject.valueOf):
1611         (testCSE):
1612         (opaqueCoshForDCE):
1613         (testDCE.let.testObject.valueOf):
1614         (testDCE):
1615         (testException.opaqueCoshWithException):
1616         (testException):
1617         * stress/arith-expm1-on-various-types.js: Added.
1618         (let.validInputTypedTestCases.validInputTestCases.map):
1619         (isIdentical):
1620         (opaqueExpm1NoArgument):
1621         (testNoArgument):
1622         (opaqueAllTypesExpm1):
1623         (testAllTypesCall):
1624         (testSingleTypeCall):
1625         (testConstant):
1626         (opaqueExpm1ForSideEffects):
1627         (testSideEffect.let.testObject.valueOf):
1628         (testSideEffect):
1629         (opaqueExpm1ForCSE):
1630         (testCSE.let.testObject.valueOf):
1631         (testCSE):
1632         (opaqueExpm1ForDCE):
1633         (testDCE.let.testObject.valueOf):
1634         (testDCE):
1635         (testException.opaqueExpm1WithException):
1636         (testException):
1637         * stress/arith-log10-on-various-types.js: Added.
1638         (let.validInputTypedTestCases.validInputTestCases.map):
1639         (isIdentical):
1640         (opaqueLog10NoArgument):
1641         (testNoArgument):
1642         (opaqueAllTypesLog10):
1643         (testAllTypesCall):
1644         (testSingleTypeCall):
1645         (testConstant):
1646         (opaqueLog10ForSideEffects):
1647         (testSideEffect.let.testObject.valueOf):
1648         (testSideEffect):
1649         (opaqueLog10ForCSE):
1650         (testCSE.let.testObject.valueOf):
1651         (testCSE):
1652         (opaqueLog10ForDCE):
1653         (testDCE.let.testObject.valueOf):
1654         (testDCE):
1655         (testException.opaqueLog10WithException):
1656         (testException):
1657         * stress/arith-log2-on-various-types.js: Added.
1658         (let.validInputTypedTestCases.validInputTestCases.map):
1659         (isIdentical):
1660         (opaqueLog2NoArgument):
1661         (testNoArgument):
1662         (opaqueAllTypesLog2):
1663         (testAllTypesCall):
1664         (testSingleTypeCall):
1665         (testConstant):
1666         (opaqueLog2ForSideEffects):
1667         (testSideEffect.let.testObject.valueOf):
1668         (testSideEffect):
1669         (opaqueLog2ForCSE):
1670         (testCSE.let.testObject.valueOf):
1671         (testCSE):
1672         (opaqueLog2ForDCE):
1673         (testDCE.let.testObject.valueOf):
1674         (testDCE):
1675         (testException.opaqueLog2WithException):
1676         (testException):
1677         * stress/arith-sinh-on-various-types.js: Added.
1678         (let.validInputTypedTestCases.validInputTestCases.map):
1679         (isIdentical):
1680         (opaqueSinhNoArgument):
1681         (testNoArgument):
1682         (opaqueAllTypesSinh):
1683         (testAllTypesCall):
1684         (testSingleTypeCall):
1685         (testConstant):
1686         (opaqueSinhForSideEffects):
1687         (testSideEffect.let.testObject.valueOf):
1688         (testSideEffect):
1689         (opaqueSinhForCSE):
1690         (testCSE.let.testObject.valueOf):
1691         (testCSE):
1692         (opaqueSinhForDCE):
1693         (testDCE.let.testObject.valueOf):
1694         (testDCE):
1695         (testException.opaqueSinhWithException):
1696         (testException):
1697         * stress/arith-tan-on-various-types.js:
1698         (isIdentical):
1699         * stress/arith-tanh-on-various-types.js: Added.
1700         (let.validInputTypedTestCases.validInputTestCases.map):
1701         (isIdentical):
1702         (opaqueTanhNoArgument):
1703         (testNoArgument):
1704         (opaqueAllTypesTanh):
1705         (testAllTypesCall):
1706         (testSingleTypeCall):
1707         (testConstant):
1708         (opaqueTanhForSideEffects):
1709         (testSideEffect.let.testObject.valueOf):
1710         (testSideEffect):
1711         (opaqueTanhForCSE):
1712         (testCSE.let.testObject.valueOf):
1713         (testCSE):
1714         (opaqueTanhForDCE):
1715         (testDCE.let.testObject.valueOf):
1716         (testDCE):
1717         (testException.opaqueTanhWithException):
1718         (testException):
1719
1720 2017-05-03  Keith Miller  <keith_miller@apple.com>
1721
1722         Array.prototype.sort should also allow a null comparator
1723         https://bugs.webkit.org/show_bug.cgi?id=171621
1724
1725         Reviewed by Michael Saboff.
1726
1727         Add test to make it less likely we revert to the incompatable behavior.
1728         Also, fix now incorrect tests.
1729
1730         * ChakraCore/test/Array/array_sort.baseline-jsc:
1731         * stress/array-sort-bad-comparator.js:
1732         (test):
1733         * stress/sort-null-comparator.js: Added.
1734         (assertEq):
1735
1736 2017-05-03  Caitlin Potter  <caitp@igalia.com>
1737
1738         [JSC] remove unneeded asyncFunctionTests.yaml
1739         https://bugs.webkit.org/show_bug.cgi?id=171611
1740
1741         Reviewed by Yusuke Suzuki.
1742
1743         Async functions have shipped, and those tests are run as part of
1744         JSTests/stress and JSTests/test262.yaml. The file is no longer needed.
1745
1746         * asyncFunctionTests.yaml: Removed.
1747         * stress/async-await-long-loop.js:
1748         * stress/async-await-throw-loop.js:
1749
1750 2017-05-03  Keith Miller  <keith_miller@apple.com>
1751
1752         Different behaviour with the .sort(callback) method (unlike Firefox & Chrome)
1753         https://bugs.webkit.org/show_bug.cgi?id=47825
1754
1755         Reviewed by Saam Barati.
1756
1757         * stress/sorting-boolean-result-comparator.js: Added.
1758         (checkArray):
1759
1760 2017-05-02  David Kilzer  <ddkilzer@apple.com>
1761
1762         check-webkit-style should keep JavaScript test functions in sync
1763         <https://webkit.org/b/171424>
1764
1765         Reviewed by Joseph Pecoraro.
1766
1767         This change makes shouldBe(), shouldNotBe(), shouldNotThrow()
1768         and shouldThrow() in sync with other copies of these methods.
1769
1770         * stress/resources/standalone-pre.js:
1771         (shouldBe): Fix whitespace.  Prefix 'exception' and 'quiet'
1772         variables with underscore.
1773         (shouldThrow): Fix whitespace.
1774
1775 2017-04-30  Oleksandr Skachkov  <gskachkov@gmail.com>
1776
1777         We initialize functions too early in an eval
1778         https://bugs.webkit.org/show_bug.cgi?id=161099
1779
1780         Reviewed by Saam Barati.
1781
1782         * stress/eval-func-decl-with-let-const-class.js: Added.
1783
1784 2017-04-30  Oleksandr Skachkov  <gskachkov@gmail.com>
1785
1786         [ES6]. Implement Annex B.3.3 function hoisting rules for eval
1787         https://bugs.webkit.org/show_bug.cgi?id=163208
1788
1789         Reviewed by Saam Barati.
1790
1791         * stress/eval-func-decl-block-scoping-reassign.js: Added.
1792         (assert):
1793         (throw.new.Error.f):
1794         (throw.new.Error):
1795         * stress/eval-func-decl-block-with-remove.js: Added.
1796         (assert):
1797         (foo.boo):
1798         (foo):
1799         * stress/eval-func-decl-block-with-var-and-remove.js: Added.
1800         (assert):
1801         (assertThrow):
1802         (foo):
1803         (boo):
1804         (joo):
1805         (koo):
1806         * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
1807         (assert):
1808         (assertThrow):
1809         (foo):
1810         (boo):
1811         (hoo):
1812         (joo):
1813         (koo):
1814         * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
1815         * stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
1816         (assert):
1817         (assertThrow):
1818         (foo):
1819         (boo):
1820         (goo):
1821         * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
1822         (assert):
1823         (assertThrow):
1824         (foo):
1825         (boo):
1826         (boo.let.val2):
1827         (boo.let.val3):
1828         * stress/eval-func-decl-in-frozen-global.js: Added.
1829         (assert):
1830         (assertThrow):
1831         (throw.new.Error):
1832         (Object.freeze):
1833         * stress/eval-func-decl-in-global-of-eval.js: Added.
1834         (assert):
1835         (assertThrow):
1836         (bar):
1837         (baz):
1838         (foobar):
1839         * stress/eval-func-decl-in-global.js: Added.
1840         (assert):
1841         (assertThrow):
1842         * stress/eval-func-decl-in-if.js: Added.
1843         (assert):
1844         * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
1845         (assert):
1846         (assertThrow):
1847         (foo):
1848         (boo):
1849         (foobar):
1850         (hoo):
1851         (joo):
1852         (koo):
1853         (loo):
1854         * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
1855         (assert):
1856         (assertThrow):
1857         (foo):
1858         (boo):
1859         (goo):
1860         * stress/variable-under-tdz-eval-tricky.js:
1861         (assert):
1862         * test262.yaml:
1863
1864 2017-04-27  Mark Lam  <mark.lam@apple.com>
1865
1866         Fix some RELEASE_ASSERT failures caused by OutOfMemoryErrors.
1867         https://bugs.webkit.org/show_bug.cgi?id=171404
1868         <rdar://problem/31876178>
1869
1870         Reviewed by Saam Barati.
1871
1872         * stress/js-fixed-array-out-of-memory.js: Added.
1873
1874 2017-04-27  David Kilzer  <ddkilzer@apple.com>
1875
1876         Enhance shouldBe()/shouldNotBe() to accept anonymous function arguments
1877         <https://webkit.org/b/171362>
1878         <rdar://problem/31867686>
1879
1880         Reviewed by Joseph Pecoraro.
1881
1882         * stress/resources/standalone-pre.js:
1883         (shouldBe):
1884         (shouldNotThrow):
1885         (shouldThrow):
1886         - Update shouldBe() to accept anonymous function arguments.
1887           (The shouldNotBe() function was never copied over.)
1888         - Also fix shouldThrow()/shouldNotThrow() to accept anonymous
1889           function arguments (which were missed in r202609 for Bug
1890           159232).
1891
1892 2017-04-27  Yusuke Suzuki  <utatane.tea@gmail.com>
1893
1894         [JSC] Handle PhantomSpread in LoadVarargs as the same to the others
1895         https://bugs.webkit.org/show_bug.cgi?id=171262
1896
1897         Reviewed by Saam Barati.
1898
1899         * stress/spread-outer-create-rest.js: Added.
1900         (assert):
1901         (foo):
1902         (bar):
1903         (baz):
1904
1905 2017-04-26  Saam Barati  <sbarati@apple.com>
1906
1907         Print Wasm function index in stack trace
1908         https://bugs.webkit.org/show_bug.cgi?id=171349
1909
1910         Reviewed by JF Bastien.
1911
1912         * wasm/function-tests/stack-trace.js: Added.
1913         (import.Builder.from.string_appeared_here.assert):
1914         (let.imp):
1915         * wasm/function-tests/trap-after-cross-instance-call.js:
1916         (wasmFrameCountFromError):
1917         * wasm/function-tests/trap-load-2.js:
1918         (wasmFrameCountFromError):
1919         * wasm/function-tests/trap-load.js:
1920         (wasmFrameCountFromError):
1921
1922 2017-04-26  Saam Barati  <sbarati@apple.com>
1923
1924         ASSERTION FAILED: inIndex != notFound in JSC::invalidParameterInSourceAppender()
1925         https://bugs.webkit.org/show_bug.cgi?id=170924
1926         <rdar://problem/31721052>
1927
1928         Reviewed by Mark Lam.
1929
1930         * stress/error-message-for-function-base-not-found.js: Added.
1931         (assert):
1932         (throw.new.Error):
1933         * stress/error-messages-for-in-operator-should-not-crash.js: Added.
1934         (catch):
1935
1936 2017-04-26  Keith Miller  <keith_miller@apple.com>
1937
1938         WebAssembly: Implement tier up
1939         https://bugs.webkit.org/show_bug.cgi?id=170134
1940
1941         Reviewed by Filip Pizlo.
1942
1943         * wasm/function-tests/trap-after-cross-instance-call.js:
1944         * wasm/tier-up/js-to-wasm.js: Added.
1945         (async.test):
1946         * wasm/tier-up/wasm-to-wasm.js: Added.
1947         (async.test):
1948
1949 2017-04-26  Caitlin Potter  <caitp@igalia.com>
1950
1951         [JSC] Object.keys() must discard property names with no PropertyDescriptor
1952         https://bugs.webkit.org/show_bug.cgi?id=171291
1953
1954         Reviewed by Yusuke Suzuki.
1955
1956         * es6/Proxy_ownKeys_duplicates.js:
1957         * stress/proxy-own-keys.js:
1958         (let.handler.getOwnPropertyDescriptor):
1959         (let.handler.ownKeys):
1960
1961 2017-04-25  Commit Queue  <commit-queue@webkit.org>
1962
1963         Unreviewed, rolling out r215476.
1964         https://bugs.webkit.org/show_bug.cgi?id=171304
1965
1966         "It broke JSBench" (Requested by saamyjoon on #webkit).
1967
1968         Reverted changeset:
1969
1970         "[ES6]. Implement Annex B.3.3 function hoisting rules for
1971         eval"
1972         https://bugs.webkit.org/show_bug.cgi?id=163208
1973         http://trac.webkit.org/changeset/215476
1974
1975 2017-04-25  Saam Barati  <sbarati@apple.com>
1976
1977         JSArray::isArrayPrototypeIteratorProtocolFastAndNonObservable is wrong because it does not do the necessary checks on the base object
1978         https://bugs.webkit.org/show_bug.cgi?id=171150
1979         <rdar://problem/31771880>
1980
1981         Reviewed by Sam Weinig.
1982
1983         * stress/spread-optimized-properly.js: Added.
1984         (assert):
1985         (test):
1986         (shallowEq):
1987         (makeArrayIterator):
1988         (test.bar):
1989         (test.callback):
1990         (test.arr.__proto__.Symbol.iterator):
1991         (test.arr.Symbol.iterator):
1992         (test.get bar):
1993         (test.hackedNext):
1994         (test.test):
1995         (test.):
1996
1997 2017-04-25  Mark Lam  <mark.lam@apple.com>
1998
1999         [Follow up] Array.prototype.slice() should ensure that end >= begin.
2000         https://bugs.webkit.org/show_bug.cgi?id=170989
2001         <rdar://problem/31705652>
2002
2003         Not reviewed.
2004
2005         Follow up to rename a test file that was accidentally named wrongly.
2006
2007         * stress/regress-170989.js: Copied from JSTests/stress/regress-170989.patch.
2008         * stress/regress-170989.patch: Removed.
2009
2010 2017-04-25  Mark Lam  <mark.lam@apple.com>
2011
2012         Array.prototype.slice() should ensure that end >= begin.
2013         https://bugs.webkit.org/show_bug.cgi?id=170989
2014         <rdar://problem/31705652>
2015
2016         Reviewed by Saam Barati.
2017
2018         * stress/regress-170989.patch: Added.
2019
2020 2017-04-25  Mark Lam  <mark.lam@apple.com>
2021
2022         Local CSE wrongly CSEs array accesses with different result types.
2023         https://bugs.webkit.org/show_bug.cgi?id=170990
2024         <rdar://problem/31705945>
2025
2026         Reviewed by Saam Barati.
2027
2028         * stress/regress-170990.js: Added.
2029
2030 2017-04-25  Yusuke Suzuki  <utatane.tea@gmail.com>
2031
2032         WebAssembly: exporting a property with a name that's a number doesn't work
2033         https://bugs.webkit.org/show_bug.cgi?id=168857
2034
2035         Reviewed by JF Bastien.
2036
2037         r213453 allows Wasm instances to expose indexed properties. We activate the tests.
2038
2039         * wasm/js-api/test_Instance.js:
2040         (ExportedNumber):
2041
2042 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
2043
2044         test262: test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
2045         https://bugs.webkit.org/show_bug.cgi?id=171190
2046
2047         Reviewed by Saam Barati.
2048
2049         * stress/async-await-syntax.js:
2050         * test262.yaml:
2051
2052 2017-04-24  Yusuke Suzuki  <utatane.tea@gmail.com>
2053
2054         [JSC] Use JSFixedArray directly when using call_varargs
2055         https://bugs.webkit.org/show_bug.cgi?id=171057
2056
2057         Reviewed by Saam Barati.
2058
2059         * stress/spread-capture-rest.js: Added.
2060         (shouldBe):
2061         (capture):
2062         (a):
2063         (b):
2064         * stress/spread-multi-layers.js: Added.
2065         (shouldBe):
2066         (a):
2067         (b):
2068         (c):
2069         (d):
2070         * stress/spread-non-varargs.js: Added.
2071         (shouldBe):
2072         (a):
2073         (b):
2074
2075 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
2076
2077         test262: test262/test/language/computed-property-names/class/static/getter-prototype.js
2078         https://bugs.webkit.org/show_bug.cgi?id=170897
2079
2080         Reviewed by Saam Barati.
2081
2082         * test262.yaml:
2083
2084 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
2085
2086         Address some FIXMEs in JavaScript tests for bugs that have been fixed
2087         https://bugs.webkit.org/show_bug.cgi?id=171191
2088
2089         Reviewed by JF Bastien.
2090
2091         * stress/proxy-is-extensible.js:
2092
2093 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
2094
2095         test262: test262/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js
2096         https://bugs.webkit.org/show_bug.cgi?id=171160
2097
2098         Reviewed by JF Bastien.
2099
2100         * stress/inferred-names.js:
2101         * test262.yaml:
2102
2103 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
2104
2105         test262: test262/test/language/expressions/generators/yield-as-label.js
2106         https://bugs.webkit.org/show_bug.cgi?id=170979
2107
2108         Reviewed by Saam Barati.
2109
2110         * stress/async-await-module-reserved-word.js:
2111         * stress/async-await-reserved-word.js:
2112         Converge on "Cannot" instead of "Can't".
2113
2114         * catch-parameter-syntax.js:
2115         * yield-named-variable-generator.js:
2116         * yield-named-variable.js:
2117         * stress/yield-label-generator.js:
2118         * stress/yield-label.js:
2119         * stress/yield-reserved-word.js: Added.
2120         More complete list of when 'yield' is allowed.
2121
2122         * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
2123         * test262.yaml:
2124
2125 2017-04-23  Commit Queue  <commit-queue@webkit.org>
2126
2127         Unreviewed, rolling out r215674.
2128         https://bugs.webkit.org/show_bug.cgi?id=171212
2129
2130         Possible unintended commit. This patch was on the wrong bug.
2131         (Requested by JoePeck on #webkit).
2132
2133         Reverted changeset:
2134
2135         "test262: test262/test/language/expressions/generators/yield-
2136         as-label.js"
2137         https://bugs.webkit.org/show_bug.cgi?id=170979
2138         http://trac.webkit.org/changeset/215674
2139
2140 2017-04-23  Joseph Pecoraro  <pecoraro@apple.com>
2141
2142         test262: test262/test/built-ins/Number/prototype/toPrecision/nan.js
2143         https://bugs.webkit.org/show_bug.cgi?id=171197
2144
2145         Reviewed by Saam Barati.
2146
2147         * test262.yaml:
2148
2149 2017-04-23  Joseph Pecoraro  <pecoraro@apple.com>
2150
2151         test262: test262/test/language/expressions/generators/yield-as-label.js
2152         https://bugs.webkit.org/show_bug.cgi?id=170979
2153
2154         Reviewed by Saam Barati.
2155
2156         * stress/async-await-module-reserved-word.js:
2157         * stress/async-await-reserved-word.js:
2158         Converge on "Cannot" instead of "Can't".
2159
2160         * catch-parameter-syntax.js:
2161         * yield-named-variable-generator.js:
2162         * yield-named-variable.js:
2163         * stress/yield-label-generator.js:
2164         * stress/yield-label.js:
2165         * stress/yield-reserved-word.js: Added.
2166         More complete list of when 'yield' is allowed.
2167
2168         * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
2169         * test262.yaml:
2170
2171 2017-04-23  Joseph Pecoraro  <pecoraro@apple.com>
2172
2173         test262: test262/test/built-ins/Number/parseFloat.js
2174         https://bugs.webkit.org/show_bug.cgi?id=171193
2175
2176         Reviewed by Yusuke Suzuki.
2177
2178         * test262.yaml:
2179
2180 2017-04-22  JF Bastien  <jfbastien@apple.com>
2181
2182         WebAssembly: Module.exports, Module.imports, Module.customSections are wrong
2183         https://bugs.webkit.org/show_bug.cgi?id=171078
2184
2185         Reviewed by Saam Barati.
2186
2187         They're static properties of Module, not instance properties of a module.
2188         https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymoduleexports
2189
2190         * wasm/js-api/Module.customSection.js:
2191         (assert.throws.WebAssembly.Module.customSections):
2192         (assert.eq):
2193         (assert.throws.WebAssembly.Module.prototype.customSections): Deleted.
2194         * wasm/js-api/Module.exports.js:
2195         (assert.throws.WebAssembly.Module.exports):
2196         (assert.truthy):
2197         (assert.throws.WebAssembly.Module.prototype.exports): Deleted.
2198         * wasm/js-api/Module.imports.js:
2199         (assert.throws.WebAssembly.Module.imports):
2200         (assert.truthy):
2201         (assert.throws.WebAssembly.Module.prototype.imports): Deleted.
2202
2203 2017-04-21  JF Bastien  <jfbastien@apple.com>
2204
2205         Silence noisy test
2206
2207         Unreviewed, Fil / Michael and I talked about it in the corridor. I
2208         just forgot to set verbose to false before commit.
2209
2210         * wasm/stress/oom.js:
2211
2212 2017-04-20  Yusuke Suzuki  <utatane.tea@gmail.com>
2213
2214         [JSC][FTL] FTL should support Arrayify
2215         https://bugs.webkit.org/show_bug.cgi?id=169596
2216
2217         Reviewed by Saam Barati.
2218
2219         * stress/arrayify.js: Added.
2220         (arrayifyInt32):
2221         (arrayifyDouble):
2222         (arrayifyContiguous):
2223
2224 2017-04-20  Mark Lam  <mark.lam@apple.com>
2225
2226         virtualThunkFor() needs to materialize its of tagMaskRegister for tail calls.
2227         https://bugs.webkit.org/show_bug.cgi?id=171079
2228         <rdar://problem/31684756>
2229
2230         Reviewed by Saam Barati.
2231
2232         * stress/regress-171079.js: Added.
2233
2234 2017-04-15  Filip Pizlo  <fpizlo@apple.com>
2235
2236         Optimize SharedArrayBuffer in the DFG+FTL
2237         https://bugs.webkit.org/show_bug.cgi?id=164108
2238
2239         Reviewed by Saam Barati.
2240         
2241         Added a fairly comprehensive test of the intrinsics. This creates a function for each possible
2242         combination of type and operation, and then first uses it nicely and then tries a bunch of
2243         erroneous conditions like OOB.
2244
2245         * stress/SharedArrayBuffer-opt.js: Added.
2246         (string_appeared_here.switch):
2247         (string_appeared_here.str):
2248         (runAtomic):
2249         (shouldFail):
2250         (Symbol):
2251         (string_appeared_here.a.of.arrays.m.of.atomics):
2252         * stress/SharedArrayBuffer.js:
2253
2254 2017-04-19  Mark Lam  <mark.lam@apple.com>
2255
2256         B3StackmapSpecial should handle when stackmap values are not recoverable from a Def'ed arg.
2257         https://bugs.webkit.org/show_bug.cgi?id=170973
2258         <rdar://problem/30318657>
2259
2260         Reviewed by Filip Pizlo.
2261
2262         * stress/regress-170973.js: Added.
2263
2264 2017-04-19  JF Bastien  <jfbastien@apple.com>
2265
2266         WebAssembly: limit slow memories
2267         https://bugs.webkit.org/show_bug.cgi?id=170825
2268
2269         Reviewed by Saam Barati.
2270
2271         * wasm.yaml:
2272         * wasm/stress/oom.js: Added.
2273         (try.true.WebAssemblyMemoryMode):
2274         (catch):
2275
2276 2017-04-19  JF Bastien  <jfbastien@apple.com>
2277
2278         WebAssembly: don't expose any WebAssembly JS object if JIT is off
2279         https://bugs.webkit.org/show_bug.cgi?id=170782
2280
2281         Reviewed by Saam Barati.
2282
2283         * wasm.yaml:
2284         * wasm/noJIT/noJIT.js: Added.
2285
2286 2017-04-18  Mark Lam  <mark.lam@apple.com>
2287
2288         r211670 broke double to int conversion.
2289         https://bugs.webkit.org/show_bug.cgi?id=170961
2290         <rdar://problem/31687696>
2291
2292         Reviewed by Yusuke Suzuki.
2293
2294         * microbenchmarks/double-to-int32.js: Added.
2295         * stress/to-int32-sensible2.js: Added.
2296
2297 2017-04-18  Oleksandr Skachkov  <gskachkov@gmail.com>
2298
2299         [ES6]. Implement Annex B.3.3 function hoisting rules for eval
2300         https://bugs.webkit.org/show_bug.cgi?id=163208
2301
2302         Reviewed by Saam Barati.
2303
2304         * stress/eval-func-decl-block-scoping-reassign.js: Added.
2305         (assert):
2306         (throw.new.Error.f):
2307         (throw.new.Error):
2308         * stress/eval-func-decl-block-with-remove.js: Added.
2309         (assert):
2310         (foo.boo):
2311         (foo):
2312         * stress/eval-func-decl-block-with-var-and-remove.js: Added.
2313         (assert):
2314         (assertThrow):
2315         (foo):
2316         (boo):
2317         (joo):
2318         (koo):
2319         * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
2320         (assert):
2321         (assertThrow):
2322         (foo):
2323         (boo):
2324         (hoo):
2325         (joo):
2326         (koo):
2327         * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
2328         * stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
2329         (assert):
2330         (assertThrow):
2331         (foo):
2332         (boo):
2333         (goo):
2334         * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
2335         (assert):
2336         (assertThrow):
2337         (foo):
2338         (boo):
2339         (boo.let.val2):
2340         (boo.let.val3):
2341         * stress/eval-func-decl-in-frozen-global.js: Added.
2342         (assert):
2343         (assertThrow):
2344         (throw.new.Error):
2345         (Object.freeze):
2346         * stress/eval-func-decl-in-global-of-eval.js: Added.
2347         (assert):
2348         (assertThrow):
2349         (bar):
2350         (baz):
2351         (foobar):
2352         * stress/eval-func-decl-in-global.js: Added.
2353         (assert):
2354         (assertThrow):
2355         * stress/eval-func-decl-in-if.js: Added.
2356         (assert):
2357         * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
2358         (assert):
2359         (assertThrow):
2360         (foo):
2361         (boo):
2362         (foobar):
2363         (hoo):
2364         (joo):
2365         (koo):
2366         (loo):
2367         * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
2368         (assert):
2369         (assertThrow):
2370         (foo):
2371         (boo):
2372         (goo):
2373         * stress/variable-under-tdz-eval-tricky.js:
2374         (assert):
2375         * test262.yaml:
2376
2377 2017-04-18  Filip Pizlo  <fpizlo@apple.com>
2378
2379         wasm/function-tests/memory-multiagent times out sometimes
2380         https://bugs.webkit.org/show_bug.cgi?id=170958
2381
2382         Reviewed by Keith Miller.
2383         
2384         Add the ability to skip tests easily. Skip the test.
2385
2386         * wasm.yaml:
2387         * wasm/function-tests/memory-multiagent.js:
2388
2389 2017-04-18  Saam Barati  <sbarati@apple.com>
2390
2391         Follow up to debug build stack overflow in test after r215453
2392
2393         Rubber stamped by Mark Lam.
2394
2395         * stress/call-apply-exponential-bytecode-size.js: Decrease the call
2396         size to prevent stack overflow errors on debug builds.
2397
2398 2017-04-18  Yusuke Suzuki  <utatane.tea@gmail.com>
2399
2400         [DFG] Convert ValueAdd(Int32, String) => MakeRope(ToString(Int32), String)
2401         https://bugs.webkit.org/show_bug.cgi?id=170943
2402
2403         Reviewed by Geoffrey Garen.
2404
2405         * microbenchmarks/number-to-string-with-add-empty.js: Added.
2406         (toStringLeft):
2407         (toStringRight):
2408         * microbenchmarks/number-to-string-with-add-in-loop.js: Added.
2409         (toStringLeft):
2410         (toStringRight):
2411         * microbenchmarks/number-to-string-with-add.js: Added.
2412         (toStringLeft):
2413         (toStringRight):
2414         * stress/number-to-string-with-add.js: Added.
2415         (shouldBe):
2416         (toStringRight):
2417         (toStringLeftEmpty):
2418         (toStringRightEmpty):
2419
2420 2017-04-18  Yusuke Suzuki  <utatane.tea@gmail.com>
2421
2422         [DFG] Drop unknown use of CheckCell's child2 to work ObjectAllocationSinking for Array iterator object
2423         https://bugs.webkit.org/show_bug.cgi?id=170940
2424
2425         Reviewed by Filip Pizlo.
2426
2427         * microbenchmarks/for-of-array.js: Added.
2428         (fn):
2429
2430 2017-04-17  Saam Barati  <sbarati@apple.com>
2431
2432         BytecodeGenerator ".call" and ".apply" is exponential in nesting depth
2433         https://bugs.webkit.org/show_bug.cgi?id=139847
2434         <rdar://problem/19321122>
2435
2436         Reviewed by Oliver Hunt.
2437
2438         * stress/call-apply-exponential-bytecode-size.js: Added.
2439         (assert):
2440         (const.inc):
2441         (const.inc2):
2442         (bar):
2443         (randomApplyOrCall):
2444         (baz):
2445         (jaz):
2446         (haz):
2447         (foo):
2448
2449 2017-04-17  Mark Lam  <mark.lam@apple.com>
2450
2451         JSArray::appendMemcpy() needs to handle copying from Undecided indexing type too.
2452         https://bugs.webkit.org/show_bug.cgi?id=170896
2453         <rdar://problem/31651319>
2454
2455         Reviewed by JF Bastien and Keith Miller.
2456
2457         * stress/regress-170896.js: Added.
2458
2459 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2460
2461         test262: test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js
2462         https://bugs.webkit.org/show_bug.cgi?id=170882
2463
2464         Reviewed by Saam Barati.
2465
2466         * test262.yaml:
2467
2468 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2469
2470         test262: test262/test/built-ins/isNaN/toprimitive-not-callable-throws.js
2471         https://bugs.webkit.org/show_bug.cgi?id=170888
2472
2473         Reviewed by Saam Barati.
2474
2475         * stress/computed-accessor.js:
2476         * stress/eval-in-arrow-function.js:
2477         * stress/rest-elements.js:
2478         * stress/string-object-define-own-property.js:
2479         Remove unused shouldThrow.
2480
2481         * stress/symbol-toprimitive-errors.js: Added.
2482         Check for ToPrimitive TypeErrors.
2483
2484         * test262.yaml:
2485
2486 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2487
2488         test262: test262/test/language/expressions/tagged-template/template-object.js
2489         https://bugs.webkit.org/show_bug.cgi?id=170878
2490
2491         Reviewed by Saam Barati.
2492
2493         * stress/array-length-not-writable.js: Added.
2494         (assert):
2495         * test262.yaml:
2496
2497 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2498
2499         test262: test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js
2500         https://bugs.webkit.org/show_bug.cgi?id=170879
2501
2502         Reviewed by Saam Barati.
2503
2504         * ChakraCore/test/es5/enumerable.baseline-jsc:
2505         * test262.yaml:
2506
2507 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2508
2509         test262: test262/test/built-ins/Date/prototype/Symbol.toPrimitive/name.js
2510         https://bugs.webkit.org/show_bug.cgi?id=170884
2511
2512         Reviewed by Yusuke Suzuki.
2513
2514         * test262.yaml:
2515
2516 2017-04-15  Joseph Pecoraro  <pecoraro@apple.com>
2517
2518         test262: test262/test/language/global-code/new.target-arrow.js
2519         https://bugs.webkit.org/show_bug.cgi?id=170872
2520
2521         Reviewed by Saam Barati.
2522
2523         * stress/async-arrow-functions-lexical-new.target-binding.js:
2524         (shouldThrowAsync): Deleted.
2525         (shouldThrowAsync.async): Deleted.
2526         This code should have thrown a SyntaxError. Instead it was throwing
2527         a ReferenceError for the internal @newTargetLocal variable.
2528
2529         * stress/new-target-syntax-errors.js:
2530         Cover the arrow function in global code cases.
2531
2532         * ChakraCore.yaml:
2533         * ChakraCore/test/es6/globalLambdaNewTargetSyntaxError.baseline-jsc:
2534         We now pass with an expected SyntaxError. Our error message is different.
2535
2536         * test262.yaml:
2537
2538 2017-04-14  Saam Barati  <sbarati@apple.com>
2539
2540         ParseInt intrinsic in DFG backend doesn't properly flush its operands
2541         https://bugs.webkit.org/show_bug.cgi?id=170865
2542
2543         Reviewed by Mark Lam and Geoffrey Garen.
2544
2545         * stress/parse-int-intrinsic-dfg-backend-flush.js: Added.
2546         (assert):
2547         (foo):
2548
2549 2017-04-14  Caitlin Potter  <caitp@igalia.com>
2550
2551         [JSC] use ExpressionErrorClassifier for AwaitExpression operand
2552         https://bugs.webkit.org/show_bug.cgi?id=170844
2553
2554         Reviewed by Saam Barati.
2555
2556         * stress/regress-170732.js: Added.
2557
2558 2017-04-14  Oleksandr Skachkov  <gskachkov@gmail.com>
2559
2560         Safari 10.1 JSON.parse returns incorrect object for numeric keys with decimal values
2561         https://bugs.webkit.org/show_bug.cgi?id=170442
2562
2563         Reviewed by Yusuke Suzuki.
2564
2565         * stress/object-number-properties.js:
2566
2567 2017-04-13  Yusuke Suzuki  <utatane.tea@gmail.com>
2568
2569         [JSC] Date.parse should accept wider range of representation
2570         https://bugs.webkit.org/show_bug.cgi?id=170720
2571
2572         Reviewed by Darin Adler.
2573
2574         * stress/date-relaxed.js: Added.
2575         (shouldBe):
2576         (throw.new.Error):
2577
2578 2017-04-13  Mark Lam  <mark.lam@apple.com>
2579
2580         Should use flushDirect() when flushing the scopeRegister due to needsScopeRegister().
2581         https://bugs.webkit.org/show_bug.cgi?id=170661
2582         <rdar://problem/31579046>
2583
2584         Reviewed by Filip Pizlo.
2585
2586         * stress/regress-170661.js: Added.
2587
2588 2017-04-13  JF Bastien  <jfbastien@apple.com>
2589
2590         WebAssembly: manage memory better
2591         https://bugs.webkit.org/show_bug.cgi?id=170628
2592
2593         Reviewed by Keith Miller, Michael Saboff.
2594
2595         * wasm/Builder.js: move a helper out so tests can use it
2596         (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
2597         * wasm/WASM.js: add utilities to classify opcodes
2598         (export.opcodes):
2599         (export.const.memoryAccessInfo.op.const.sign):
2600         * wasm/function-tests/memory-access-past-4gib.js: Added. This test
2601         fails before this patch.
2602         (const.op.of.WASM.opcodes):
2603         * wasm/function-tests/memory-many.js: Added. This simple tests
2604         just shouldn't crash. In verbose mode it's useful at determining
2605         if the GC falls behind or not.
2606         * wasm/function-tests/memory-multiagent.js: Added. Emulate postMessage.
2607         (const.startAgents.numAgentsToStart.a.agent.receiveBroadcast):
2608         (const.startAgents.numAgentsToStart.a.write.const.idx.Math.random):
2609         (const.broadcastToAgents):
2610         * wasm/js-api/extension-MemoryMode.js: verbose logging.
2611         (testMemoryNoMax):
2612         (testMemory):
2613         (testInstanceNoMemory):
2614         (testInstanceNoMax):
2615         (testInstance):
2616         * wasm/utilities.js: move a utility here.
2617
2618 2017-04-12  Joseph Pecoraro  <pecoraro@apple.com>
2619
2620         test262: test262/test/built-ins/NativeErrors/EvalError/proto.js
2621         https://bugs.webkit.org/show_bug.cgi?id=170668
2622
2623         Reviewed by Keith Miller.
2624
2625         * ChakraCore.yaml:
2626         * ChakraCore/test/Lib/error.baseline-jsc: Added.
2627         This test does not match the spec.
2628
2629         * test262.yaml:
2630
2631 2017-04-12  Joseph Pecoraro  <pecoraro@apple.com>
2632
2633         test262: test262/test/language/literals/regexp/u-dec-esc.js
2634         https://bugs.webkit.org/show_bug.cgi?id=170687
2635
2636         Reviewed by Michael Saboff.
2637
2638         * test262.yaml:
2639
2640 2017-04-11  Michael Saboff  <msaboff@apple.com>
2641
2642         Implement Object.isFrozen() and Object.isSealed() per ECMA spec
2643         https://bugs.webkit.org/show_bug.cgi?id=170753
2644
2645         Reviewed by Mark Lam.
2646
2647         Added JSC baseline and enabled defineIndexProperty test.
2648
2649         Note that JSC differs from Chakra in that a JSC doesn't use indexed
2650         properties placed on the Array prototype when sorting the indexed 
2651         properties of an Object.  This is behavior is considered undefined
2652         in the standard.
2653
2654         * ChakraCore.yaml:
2655         * ChakraCore/test/es5/defineIndexProperty.baseline-jsc: Added.
2656
2657 2017-04-11  Joseph Pecoraro  <pecoraro@apple.com>
2658
2659         test262: test262/test/annexB/language/comments/multi-line-html-close.js
2660         https://bugs.webkit.org/show_bug.cgi?id=170648
2661
2662         Reviewed by Keith Miller.
2663
2664         * test262.yaml:
2665
2666 2017-04-11  Joseph Pecoraro  <pecoraro@apple.com>
2667
2668         test262: test262/test/built-ins/Array/S15.4.3_A2.2.js
2669         https://bugs.webkit.org/show_bug.cgi?id=170652
2670
2671         Reviewed by Michael Saboff.
2672
2673         * stress/native-constructors-length.js: Added.
2674         (assertLengthDescriptorAttributes):
2675         Add a quick test for the length properties of all native constructors.
2676
2677         * ChakraCore/test/es5/enumerable.baseline-jsc:
2678         Rebaseline expectations for this test.
2679
2680         * test262.yaml:
2681
2682 2017-04-10  Keith Miller  <keith_miller@apple.com>
2683
2684         WebAssembly: Update spec tests
2685         https://bugs.webkit.org/show_bug.cgi?id=170683
2686
2687         Rubber-stamped by JF Bastien.
2688
2689         * wasm.yaml:
2690         * wasm/spec-tests/br_table.wast.js:
2691         * wasm/spec-tests/conversions.wast.js: Removed.
2692         * wasm/spec-tests/f32_bitwise.wast.js: Added.
2693         * wasm/spec-tests/f32_cmp.wast.js:
2694         * wasm/spec-tests/f64_bitwise.wast.js: Added.
2695         * wasm/spec-tests/f64_cmp.wast.js:
2696         * wasm/spec-tests/i32.wast.js:
2697         * wasm/spec-tests/i64.wast.js:
2698         * wasm/spec-tests/int_exprs.wast.js:
2699         * wasm/spec-tests/memory.wast.js:
2700
2701 2017-04-09  Joseph Pecoraro  <pecoraro@apple.com>
2702
2703         test262: test262/test/annexB/language/expressions/object/__proto__-fn-name.js
2704         https://bugs.webkit.org/show_bug.cgi?id=170650
2705
2706         Reviewed by Saam Barati.
2707
2708         * stress/inferred-names.js:
2709         * test262.yaml:
2710
2711 2017-04-09  Joseph Pecoraro  <pecoraro@apple.com>
2712
2713         test262: test262/test/annexB/language/literals/regexp/identity-escape.js
2714         https://bugs.webkit.org/show_bug.cgi?id=170651
2715
2716         Reviewed by Saam Barati.
2717
2718         * test262.yaml:
2719
2720 2017-04-07  Michael Saboff  <msaboff@apple.com>
2721
2722         Fix and enable ChakraCore/test/es6/ES6Function_bugs.js after r215072
2723         https://bugs.webkit.org/show_bug.cgi?id=170580
2724
2725         Reviewed by JF Bastien.
2726
2727         Commented out subtest that expects defineProperty("length") to a getter on a
2728         sealed function shouldn't throw.
2729
2730         * ChakraCore.yaml:
2731         * ChakraCore/test/es6/ES6Function_bugs.js:
2732
2733 2017-04-06  Michael Saboff  <msaboff@apple.com>
2734
2735         Cannot Object.seal() or Object.freeze() global "this"
2736         https://bugs.webkit.org/show_bug.cgi?id=170549
2737
2738         Reviewed by Mark Lam.
2739
2740         Enabled failing tests fixed by the corresponding code change:
2741             ChakraCore/test/LetConst/delete.js
2742             ChakraCore/test/LetConst/dop.js
2743             ChakraCore/test/LetConst/dop1.js
2744
2745         * ChakraCore.yaml:
2746         * ChakraCore/test/LetConst/dop.baseline-jsc: Added JSC specific expected output.
2747         * ChakraCore/test/LetConst/dop1.baseline-jsc: Added JSC specific expected output.
2748
2749 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
2750
2751         test262: ES2017 test progressions need updated expectations (arguments.caller removed)
2752         https://bugs.webkit.org/show_bug.cgi?id=170536
2753
2754         Reviewed by Mark Lam.
2755
2756         * test262.yaml:
2757         After r208867 the tests are out of date and are now expected to fail.
2758
2759 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
2760
2761         test262: Final rebaseline of existing tests, a few tests have started failing
2762         https://bugs.webkit.org/show_bug.cgi?id=170538
2763
2764         Reviewed by Mark Lam.
2765
2766         * test262.yaml:
2767         These tests started failing a while ago. Mark them as legitmate failures.
2768
2769 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
2770
2771         test262: Rebaseline expectations for now passing tests
2772         https://bugs.webkit.org/show_bug.cgi?id=170532
2773
2774         Reviewed by Ryosuke Niwa.
2775
2776         * test262.yaml:
2777         Update expectations for tests we are now passing.
2778
2779 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
2780
2781         test262: module test progressions need updated expectations (@@iterator changes)
2782         https://bugs.webkit.org/show_bug.cgi?id=170535
2783
2784         Reviewed by Saam Barati.
2785
2786         * test262.yaml:
2787         After r212430 the tests are out of date and are now expected to fail.
2788
2789 2017-04-05  Michael Saboff  <msaboff@apple.com>
2790
2791         Unreviewed rollout of r214642 as the test still intermittently fails.
2792
2793         Disabled ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js.
2794
2795         * ChakraCore.yaml:
2796
2797 2017-04-05  Michael Saboff  <msaboff@apple.com>
2798
2799         REGRESSION (Safari 10.1): Inserting elements into arrays fails when array contains very large numbers
2800         https://bugs.webkit.org/show_bug.cgi?id=170264
2801         <rdar://problem/31375593>
2802
2803         Rubber-stamped by Saam Barati.
2804
2805         The original bug was fixed in: https://trac.webkit.org/changeset/214714
2806         I'm just adding another test for good measure.
2807
2808         * stress/double-array-to-array-storage.js: Added.
2809         (assert):
2810
2811 2017-04-05  Keith Miller  <keith_miller@apple.com>
2812
2813         WebAssembly: We shouldn't need to pin size registers if we have a fast memory.
2814         https://bugs.webkit.org/show_bug.cgi?id=170504
2815
2816         Reviewed by Mark Lam.
2817
2818         * wasm/function-tests/trap-after-cross-instance-call.js: Added.
2819         (b.new.WebAssembly.Memory):
2820         (importObject.foo.bar):
2821         (wasmFrameCountFromError):
2822
2823 2017-03-16  Yusuke Suzuki  <utatane.tea@gmail.com>
2824
2825         [JSC] Generate TemplateObjects at linking time
2826         https://bugs.webkit.org/show_bug.cgi?id=169743
2827
2828         Reviewed by Keith Miller.
2829
2830         * stress/template-string-tags-eval.js: Added.
2831         (shouldBe):
2832         (tag):
2833
2834 2017-04-04  Mark Lam  <mark.lam@apple.com>
2835
2836         On ARM64, DFG::SpeculativeJIT::compileArithMod() failed to ensure result is of DataFormatInt32.
2837         https://bugs.webkit.org/show_bug.cgi?id=170473
2838         <rdar://problem/29912391>
2839
2840         Reviewed by Saam Barati.
2841
2842         * stress/regress-170473.js: Added.
2843
2844 2017-04-03  Mark Lam  <mark.lam@apple.com>
2845
2846         Fix incorrect capacity delta calculation reported in SparseArrayValueMap::add().
2847         https://bugs.webkit.org/show_bug.cgi?id=170412
2848         <rdar://problem/29697336>
2849
2850         Reviewed by Filip Pizlo.
2851
2852         * stress/regress-170412.js: Added.
2853
2854 2017-04-03  Keith Miller  <keith_miller@apple.com>
2855
2856         WebAssembly: Update spec tests
2857         https://bugs.webkit.org/show_bug.cgi?id=170361
2858
2859         Rubber-stamped by Saam Barati.
2860
2861         Update the spec tests to run tests generated by the newer spec
2862         test builder wasm-spec/test/builder.py. This patch also adds the
2863         necessary harness code in spec-harness.js so we can run the tests.
2864
2865         * wasm.yaml:
2866         * wasm/import-spec-tests.rb:
2867         * wasm/spec-harness.js: Added.
2868         (import.string_appeared_here.then):
2869         (test):
2870         (promise_test):
2871         (let.assert_unreached):
2872         * wasm/spec-harness/index.js: Added.
2873         (let.testNum):
2874         (assertThrows):
2875         (_assert):
2876         (ValueResult):
2877         (ErrorResult):
2878         (Result.prototype.isError):
2879         (binary):
2880         (module):
2881         (uniqueTest):
2882         (assert_invalid):
2883         (assert_soft_invalid):
2884         (register):
2885         (call):
2886         (get instance):
2887         (exports):
2888         (run):
2889         (assert_unlinkable):
2890         (assert_uninstantiable):
2891         (assert_trap):
2892         (try.f):
2893         (catch):
2894         (assert_exhaustion):
2895         (assert_return):
2896         (assert_return_nan):
2897         * wasm/spec-harness/testharness.css: Added.
2898         (html):
2899         (#log .warning,):
2900         (#log .error,):
2901         (section#summary):
2902         (table#results):
2903         (table#results th:first-child,):
2904         (table#results th:last-child,):
2905         (table#results.assertions th:last-child,):
2906         (table#results th):
2907         (table#results td):
2908         (tr.pass > td:first-child):
2909         (tr.fail > td:first-child):
2910         (tr.timeout > td:first-child):
2911         (tr.notrun > td:first-child):
2912         (.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child):
2913         (table#results span):
2914         (table#results span.expected):
2915         (table#results span.actual):
2916         (span.ok):
2917         (tr.error):
2918         (span.timeout):
2919         (span.ok, span.timeout, span.error):
2920         * wasm/spec-harness/testharness.js: Added.
2921         (WindowTestEnvironment):
2922         (WindowTestEnvironment.prototype._dispatch):
2923         (WindowTestEnvironment.prototype._forEach_windows):
2924         (WindowTestEnvironment.prototype.on_tests_ready):
2925         (WindowTestEnvironment.prototype.setup_messages):
2926         (WindowTestEnvironment.prototype.next_default_test_name):
2927         (WindowTestEnvironment.prototype.on_new_harness_properties):
2928         (WindowTestEnvironment.prototype.add_on_loaded_callback):
2929         (WindowTestEnvironment.prototype.test_timeout):
2930         (WindowTestEnvironment.prototype.global_scope):
2931         (WorkerTestEnvironment):
2932         (WorkerTestEnvironment.prototype._dispatch):
2933         (WorkerTestEnvironment.prototype._add_message_port):
2934         (WorkerTestEnvironment.prototype.next_default_test_name):
2935         (WorkerTestEnvironment.prototype.on_new_harness_properties):
2936         (WorkerTestEnvironment.prototype.on_tests_ready):
2937         (WorkerTestEnvironment.prototype.add_on_loaded_callback):
2938         (WorkerTestEnvironment.prototype.test_timeout):
2939         (WorkerTestEnvironment.prototype.global_scope):
2940         (DedicatedWorkerTestEnvironment):
2941         (DedicatedWorkerTestEnvironment.prototype.on_tests_ready):
2942         (SharedWorkerTestEnvironment):
2943         (SharedWorkerTestEnvironment.prototype.on_tests_ready):
2944         (ServiceWorkerTestEnvironment):
2945         (ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback):
2946         (create_test_environment):
2947         (is_shared_worker):
2948         (is_service_worker):
2949         (test):
2950         (async_test):
2951         (promise_test):
2952         (this.wait_for):
2953         (EventWatcher):
2954         (setup):
2955         (done):
2956         (generate_tests):
2957         (step_timeout):
2958         (truncate):
2959         (is_node):
2960         (format_value):
2961         * wasm/spec-harness/testharnessreport.js: Added.
2962         * wasm/spec-harness/wasm-constants.js: Added.
2963         (bytes):
2964         (bytesWithHeader):
2965         (makeSig):
2966         (makeSig_v_x):
2967         (makeSig_v_xx):
2968         (makeSig_r_v):
2969         (makeSig_r_x):
2970         (makeSig_r_xx):
2971         (assertTraps):
2972         (assertWasmThrows):
2973         * wasm/spec-harness/wasm-module-builder.js: Added.
2974         (Binary.prototype.emit_u8):
2975         (Binary.prototype.emit_u16):
2976         (Binary.prototype.emit_u32):
2977         (Binary.prototype.emit_u32v):
2978         (Binary.prototype.emit_bytes):
2979         (Binary.prototype.emit_string):
2980         (Binary.prototype.emit_header):
2981         (Binary.prototype.emit_section):
2982         (Binary):
2983         (WasmFunctionBuilder):
2984         (WasmFunctionBuilder.prototype.exportAs):
2985         (WasmFunctionBuilder.prototype.exportFunc):
2986         (WasmFunctionBuilder.prototype.addBody):
2987         (WasmFunctionBuilder.prototype.addLocals):
2988         (WasmFunctionBuilder.prototype.end):
2989         (WasmGlobalBuilder):
2990         (WasmGlobalBuilder.prototype.exportAs):
2991         (WasmModuleBuilder):
2992         (WasmModuleBuilder.prototype.addStart):
2993         (WasmModuleBuilder.prototype.addMemory):
2994         (WasmModuleBuilder.prototype.addExplicitSection):
2995         (WasmModuleBuilder.prototype.addType):
2996         (WasmModuleBuilder.prototype.addGlobal):
2997         (WasmModuleBuilder.prototype.addFunction):
2998         (WasmModuleBuilder.prototype.addImport):
2999         (WasmModuleBuilder.prototype.addImportedGlobal):
3000         (WasmModuleBuilder.prototype.addImportedMemory):
3001         (WasmModuleBuilder.prototype.addImportedTable):
3002         (WasmModuleBuilder.prototype.addExport):
3003         (WasmModuleBuilder.prototype.addExportOfKind):
3004         (WasmModuleBuilder.prototype.addDataSegment):
3005         (WasmModuleBuilder.prototype.exportMemoryAs):
3006         (WasmModuleBuilder.prototype.addFunctionTableInit):
3007         (WasmModuleBuilder.prototype.appendToTable):
3008         (WasmModuleBuilder.prototype.setFunctionTableLength):
3009         (WasmModuleBuilder.prototype.toArray):
3010         (WasmModuleBuilder.prototype.toBuffer):
3011         (WasmModuleBuilder.prototype.instantiate):
3012         * wasm/spec-harness/wast.js: Added.
3013         (normalize):
3014         (require.else._registry.name):
3015         (require):
3016         (add_hex_char):
3017         (add_char):
3018         (string_with):
3019         (list_of_opt):
3020         (break_bytes.f):
3021         (break_bytes):
3022         (f):
3023         (decls):
3024         (func_type):
3025         (limits):
3026         (global_type):
3027         (testop):
3028         (relop):
3029         (unop):
3030         (binop):
3031         (cvtop):
3032         (oper):
3033         (mem_size):
3034         (extension):
3035         (memop):
3036         (storeop):
3037         (var):
3038         (constop):
3039         (instr.else.switch.case.0.f):
3040         (instr.else.switch.case.1.f.1):
3041         (instr.else.switch.case.2.f.2):
3042         (instr):
3043         (func_with_name):
3044         (func):
3045         (start):
3046         (table):
3047         (memory):
3048         (segment):
3049         (elems):
3050         (data):
3051         (typedef):
3052         (import_kind):
3053         (import):
3054         (export_kind):
3055         (export):
3056         (var_opt):
3057         (is_func_import):
3058         (is_table_import):
3059         (is_memory_import):
3060         (is_global_import):
3061         (f.1):
3062         (f.2):
3063         (f.3):
3064         (module_with_var_opt):
3065         (module_):
3066         (literal):
3067         (definition):
3068         (access):
3069         (action):
3070         (script):
3071         (_registry.string_appeared_here):
3072         (init):
3073         (make_matrix):
3074         (copy):
3075         (append):
3076         (sub):
3077         (fill):
3078         (blit):
3079         (iter):
3080         (map):
3081         (iteri):
3082         (mapi):
3083         (to_list):
3084         (list_length):
3085         (of_list):
3086         (fold_left):
3087         (fold_right):
3088         (maxson):
3089         (trickle):
3090         (bubble):
3091         (trickleup):
3092         (sort):
3093         (merge):
3094         (isortto):
3095         (sortto):
3096         (stable_sort):
3097         (import_type):
3098         (export_type):
3099         (dims.n):
3100         (dims.d.i):
3101         (dims):
3102         (map_file):
3103         (create):
3104         (of_array):
3105         (slice_left):
3106         (slice_right):
3107         (slice_left_1):
3108         (slice_right_1):
3109         (slice_left_2):
3110         (slice_right_2):
3111         (array1_of_genarray):
3112         (array2_of_genarray):
3113         (array3_of_genarray):
3114         (reshape_1):
3115         (reshape_2):
3116         (reshape_3):
3117         (reshape):
3118         (__):
3119         (contents):
3120         (to_bytes):
3121         (nth):
3122         (length):
3123         (clear):
3124         (reset):
3125         (resize):
3126         (add_substring):
3127         (add_subbytes):
3128         (add_string):
3129         (add_bytes):
3130         (add_buffer):
3131         (add_channel):
3132         (output_buffer):
3133         (closing):
3134         (advance_to_closing):
3135         (advance_to_non_alpha):
3136         (find_ident):
3137         (add_substitute):
3138         (make):
3139         (to_string):
3140         (of_string):
3141         (sub_string):
3142         (extend):
3143         (blit_string):
3144         (concat):
3145         (cat):
3146         (is_space):
3147         (trim):
3148         (escaped):
3149         (uppercase):
3150         (lowercase):
3151         (apply1):
3152         (capitalize):
3153         (uncapitalize):
3154         (index_rec):
3155         (index):
3156         (index_from):
3157         (rindex_rec):
3158         (rindex):
3159         (rindex_from):
3160         (contains_from):
3161         (contains):
3162         (rcontains_from):
3163         (caml_array_sub):
3164         (len):
3165         (caml_array_concat):
3166         (caml_make_vect):
3167         (caml_array_blit):
3168         (get if):
3169         (caml_set_oo_id):
3170         (get_id):
3171         (caml_int32_float_of_bits):
3172         (caml_int32_bits_of_float):
3173         (caml_classify_float):
3174         (caml_modf_float):
3175         (caml_ldexp_float):
3176         (caml_frexp_float):
3177         (caml_copysign_float):
3178         (caml_expm1_float):
3179         (caml_hypot_float):
3180         (caml_log10_float):
3181         (caml_failwith):
3182         (parse_digit):
3183         (int_of_string_base):
3184         (parse_sign_and_base):
3185         (caml_int_of_string.aux):
3186         (caml_int_of_string):
3187         (caml_int64_of_string.aux):
3188         (caml_int64_of_string):
3189         (int_of_base):
3190         (parse_format):
3191         (finish_formatting):
3192         (caml_format_int):
3193         (caml_int64_format):
3194         (caml_format_float):
3195         (float_of_string):
3196         (div):
3197         (mod_):
3198         (caml_bswap16):
3199         (caml_int32_bswap):
3200         (imul):
3201         (neg_signed):
3202         (not):
3203         (eq):
3204         (neg):
3205         (lsl_):
3206         (lsr_):
3207         (asr_):
3208         (is_zero):
3209         (mul):
3210         (swap):
3211         (xor):
3212         (or_):
3213         (and_):
3214         (ge):
3215         (lt):
3216         (gt):
3217         (le):
3218         (to_float):
3219         (of_float):
3220         (div_mod):
3221         (compare):
3222         (of_int32):
3223         (to_int32):
3224         (to_hex.aux):
3225         (to_hex):
3226         (discard_sign):
3227         (float_of_bits):
3228         (bits_of_float.to_nat):
3229         (bits_of_float):
3230         (get64):
3231         (erase_rel):
3232         (concat_fmtty):
3233         (concat_fmt):
3234         (create_char_set):
3235         (add_in_char_set):
3236         (rev_char_set):
3237         (is_in_char_set):
3238         (prec_of_prec_opt):
3239         (param_format_of_ignored_format):
3240         (buffer_check_size):
3241         (buffer_add_char):
3242         (buffer_add_string):
3243         (buffer_contents):
3244         (char_of_iconv):
3245         (char_of_fconv):
3246         (char_of_counter):
3247         (print_char):
3248         (set while.set var):
3249         (set while.set else):
3250         (set var):
3251         (set else):
3252         (set print_char):
3253         (set if):
3254         (bprint_padty):
3255         (bprint_ignored_flag):
3256         (bprint_pad_opt):
3257         (bprint_padding):
3258         (bprint_precision):
3259         (bprint_iconv_flag):
3260         (bprint_int_fmt):
3261         (bprint_altint_fmt):
3262         (bprint_fconv_flag):
3263         (bprint_float_fmt):
3264         (string_of_formatting_lit):
3265         (string_of_formatting_gen):
3266         (bprint_char_literal):
3267         (bprint_string_literal):
3268         (bprint_fmtty):
3269         (int_of_custom_arity):
3270         (bprint_fmt):
3271         (string_of_fmt):
3272         (symm):
3273         (fmtty_rel_det):
3274         (trans):
3275         (fmtty_of_formatting_gen):
3276         (fmtty_of_fmt):
3277         (fmtty_of_custom):
3278         (fmtty_of_padding_fmtty):
3279         (fmtty_of_precision_fmtty):
3280         (type_padding):
3281         (type_padprec):
3282         (type_ignored_param_one):
3283         (type_format_gen):
3284         (type_ignored_format_substitution):
3285         (type_format):
3286         (recast):
3287         (fix_padding):
3288         (fix_int_precision):
3289         (string_to_caml_string):
3290         (format_of_iconv):
3291         (format_of_aconv):
3292         (format_of_fconv):
3293         (convert_int):
3294         (convert_int32):
3295         (convert_nativeint):
3296         (convert_int64):
3297         (else.is_valid):
3298         (convert_float):
3299         (format_caml_char):
3300         (string_of_fmtty):
3301         (else.switch.):
3302         (else.switch.k.prime):
3303         (else.switch.else.):
3304         (else.switch.else.k.prime.1):
3305         (make_printf):
3306         (make_from_fmtty):
3307         (make_invalid_arg):
3308         (make_string_padding):
3309         (make_int_padding_precision):
3310         (make_custom):
3311         (output_acc):
3312         (bufput_acc):
3313         (strput_acc):
3314         (failwith_message.k):
3315         (failwith_message):
3316         (open_box_of_string.else.invalid_box):
3317         (open_box_of_string.else.parse_spaces):
3318         (open_box_of_string.else.parse_lword):
3319         (open_box_of_string.else.parse_int):
3320         (open_box_of_string):
3321         (make_padding_fmt_ebb):
3322         (make_precision_fmt_ebb):
3323         (make_padprec_fmt_ebb):
3324         (invalid_format_message):
3325         (invalid_format_without):
3326         (expected_character):
3327         (compute_int_conv):
3328         (incompatible_flag):
3329         (parse_positive):
3330         (parse_conv):
3331         (parse_after_precision):
3332         (else.parse_literal):
3333         (parse_after_padding):
3334         (parse_literal):
3335         (parse_after_at):
3336         (add_literal):
3337         (parse_spaces):
3338         (parse_integer):
3339         (compute_float_conv):
3340         (search_subformat_end):
3341         (check_no_0):
3342         (opt_of_pad):
3343         (get_prec_opt):
3344         (else.switch.case.99.char_format):
3345         (else.switch.scan_format):
3346         (parse_conversion):
3347         (set_flag):
3348         (parse_flags):
3349         (is_int_base):
3350         (counter_of_char):
3351         (add_range):
3352         (fail_single_percent):
3353         (parse_char_set_after_char):
3354         (parse_char_set_content):
3355         (parse_char_set_start):
3356         (parse_char_set):
3357         (check_open_box):
3358         (parse_tag):
3359         (fmt_ebb_of_string):
3360         (format_of_string_fmtty):
3361         (format_of_string_format):
3362         (caret):
3363         (caml_ml_open_descriptor_in):
3364         (caml_ml_open_descriptor_out):
3365         (caml_ml_flush):
3366         (node_std_output):
3367         (caml_ml_output_char):
3368         (caml_ml_input):
3369         (caml_ml_input_char):
3370         (caml_ml_out_channels_list):
3371         (fail):
3372         (caml_lex_array):
3373         (caml_lex_engine):
3374         (caml_lex_run_mem):
3375         (caml_lex_run_tag):
3376         (caml_new_lex_engine):
3377         (caml_obj_dup):
3378         (caml_obj_truncate):
3379         (caml_lazy_make_forward):
3380         (caml_update_dummy):
3381         (caml_int_compare):
3382         (caml_compare):
3383         (caml_equal):
3384         (caml_notequal):
3385         (caml_greaterequal):
3386         (caml_lessequal):
3387         (else.aux):
3388         (caml_get_public_method):
3389         (caml_parse_engine):
3390         (caml_set_parser_trace):
3391         (js_string_of_char):
3392         (caml_string_get):
3393         (caml_create_string):
3394         (caml_string_compare):
3395         (caml_fill_string):
3396         (caml_blit_string):
3397         (caml_blit_bytes):
3398         (bytes_of_string):
3399         (bytes_to_string):
3400         (caml_string_of_char_array):
3401         (caml_is_printable):
3402         (caml_string_get16):
3403         (caml_string_get32):
3404         (repeat):
3405         (chr):
3406         (app):
3407         (js):
3408         (curry_1):
3409         (_1):
3410         (js1):
3411         (__1):
3412         (curry_2):
3413         (_2):
3414         (js2):
3415         (__2):
3416         (curry_3):
3417         (_3):
3418         (js3):
3419         (__3):
3420         (curry_4):
3421         (_4):
3422         (js4):
3423         (__4):
3424         (curry_5):
3425         (_5):
3426         (js5):
3427         (__5):
3428         (curry_6):
3429         (_6):
3430         (js6):
3431         (__6):
3432         (curry_7):
3433         (_7):
3434         (js7):
3435         (__7):
3436         (curry_8):
3437         (_8):
3438         (js8):
3439         (__8):
3440         (stream):
3441         (eos):
3442         (skip):
3443         (read):
3444         (peek):
3445         (string_of_byte):
3446         (position):
3447         (region):
3448         (error):
3449         (guard):
3450         (get 1):
3451         (get expect):
3452         (get illegal):
3453         (at):
3454         (u32):
3455         (u64):
3456         (get require):
3457         (vuN):
3458         (get var):
3459         (vsN):
3460         (vu32):
3461         (vs32):
3462         (vs64):
3463         (f32):
3464         (f64):
3465         (len32):
3466         (string):
3467         (opt):
3468         (vec):
3469         (sized):
3470         (value_type):
3471         (elem_type):
3472         (stack_type):
3473         (table_type):
3474         (memory_type):
3475         (mutability.get if):
3476         (mutability):
3477         (instr.get if):
3478         (instr_block):
3479         (const):
3480         (id):
3481         (section):
3482         (type_section):
3483         (import_kind.get if):
3484         (import_section):
3485         (func_section):
3486         (table_section):
3487         (memory_section):
3488         (global):
3489         (global_section):
3490         (export_kind.get if):
3491         (export_section):
3492         (start_section):
3493         (local):
3494         (code):
3495         (code_section):
3496         (table_segment):
3497         (elem_section):
3498         (memory_segment):
3499         (data_section):
3500         (partial_arg.1):
3501         (custom):
3502         (custom_section):
3503         (iterate):
3504         (decode):
3505         (patch):
3506         (encode.u8):
3507         (encode.u16):
3508         (encode.u32):
3509         (encode.vu64):
3510         (encode.vs64):
3511         (encode.vu32):
3512         (encode.len):
3513         (encode.bool):
3514         (encode.string):
3515         (encode.vec):
3516         (encode.gap32):
3517         (encode.patch_gap32):
3518         (encode.value_type):
3519         (encode.stack_type):
3520         (encode.func_type):
3521         (encode.limits):
3522         (encode.table_type):
3523         (encode.memory_type):
3524         (encode.global_type):
3525         (encode.memop):
3526         (encode):
3527         (encode.instr):
3528         (encode.const):
3529         (encode.section):
3530         (encode.type_section):
3531         (encode.import):
3532         (encode.import_section):
3533         (encode.func):
3534         (encode.func_section):
3535         (encode.table):
3536         (encode.table_section):
3537         (encode.memory):
3538         (encode.memory_section):
3539         (encode.global):
3540         (encode.global_section):
3541         (encode.export_kind):
3542         (encode.export):
3543         (encode.export_section):
3544         (encode.start_section):
3545         (encode.combine):
3546         (encode.compress):
3547         (encode.local):
3548         (encode.code):
3549         (encode.code_section):
3550         (encode.segment):
3551         (encode.table_segment):
3552         (encode.elem_section):
3553         (encode.memory_segment):
3554         (encode.module_):
3555         (Make.warn):
3556         (Make.error):
3557         (Make):
3558         (print_nan_significand_digits):
3559         (Make.of_bits):
3560         (Make.to_bits):
3561         (Make.is_nan):
3562         (Make.canonicalize_nan):
3563         (Make.determine_binary_nan):
3564         (Make.determine_unary_nan):
3565         (Make.binary):
3566         (Make.unary):
3567         (Make.add):
3568         (Make.sub):
3569         (Make.mul):
3570         (Make.div):
3571         (Make.sqrt):
3572         (Make.ceil):
3573         (Make.floor):
3574         (Make.trunc):
3575         (Make.nearest):
3576         (Make.min):
3577         (Make.max):
3578         (Make.abs):
3579         (Make.neg):
3580         (Make.copysign):
3581         (Make.eq):
3582         (Make.ne):
3583         (Make.lt):
3584         (Make.gt):
3585         (Make.le):
3586         (Make.ge):
3587         (Make.of_signless_string):
3588         (Make.of_string):
3589         (Make.to_string):
3590         (add_queue):
3591         (peek_queue):
3592         (take_queue):
3593         (pp_enqueue):
3594         (pp_clear_queue):
3595         (pp_output_string):
3596         (break_new_line):
3597         (break_same_line):
3598         (pp_force_break_line):
3599         (switch.add_tab):
3600         (else.switch.find):
3601         (format_pp_token):
3602         (advance_left):
3603         (enqueue_advance):
3604         (enqueue_string_as):
3605         (set_size):
3606         (scan_push):
3607         (pp_open_box_gen):
3608         (pp_close_box):
3609         (pp_open_tag):
3610         (pp_close_tag):
3611         (pp_set_print_tags):
3612         (pp_set_mark_tags):
3613         (pp_get_print_tags):
3614         (pp_get_mark_tags):
3615         (pp_set_tags):
3616         (pp_get_formatter_tag_functions):
3617         (pp_set_formatter_tag_functions):
3618         (pp_rinit):
3619         (pp_flush_queue):
3620         (pp_print_as_size):
3621         (pp_print_string):
3622         (pp_print_int):
3623         (pp_print_float):
3624         (pp_print_bool):
3625         (pp_open_hbox):
3626         (pp_open_vbox):
3627         (pp_open_hvbox):
3628         (pp_open_hovbox):
3629         (pp_open_box):
3630         (pp_print_newline):
3631         (pp_print_flush):
3632         (pp_force_newline):
3633         (pp_print_if_newline):
3634         (pp_print_break):
3635         (pp_print_space):
3636         (pp_print_cut):
3637         (pp_open_tbox):
3638         (pp_close_tbox):
3639         (pp_print_tbreak):
3640         (pp_print_tab):
3641         (pp_set_tab):
3642         (pp_print_list):
3643         (flush):
3644         (pp_print_text):
3645         (pp_set_max_boxes):
3646         (pp_get_max_boxes):
3647         (pp_over_max_boxes):
3648         (pp_get_ellipsis_text):
3649         (pp_limit):
3650         (pp_set_max_indent):
3651         (pp_get_max_indent):
3652         (pp_set_margin):
3653         (pp_get_margin):
3654         (pp_set_formatter_out_functions):
3655         (pp_get_formatter_out_functions):
3656         (pp_set_formatter_output_functions):
3657         (pp_get_formatter_output_functions):
3658         (pp_set_all_formatter_output_functions):
3659         (pp_get_all_formatter_output_functions):
3660         (display_newline):
3661         (display_blanks):
3662         (state.16):
3663         (state.17):
3664         (state.18):
3665         (state.19):
3666         (pp_set_formatter_out_channel):
3667         (default_pp_mark_open_tag):
3668         (default_pp_mark_close_tag):
3669         (default_pp_print_open_tag):
3670         (default_pp_print_close_tag):
3671         (pp_make_formatter):
3672         (ppf.18):
3673         (ppf.19):
3674         (make_formatter):
3675         (formatter_of_out_channel):
3676         (formatter_of_buffer):
3677         (flush_str_formatter):
3678         (flush_buf_formatter):
3679         (open_hbox):
3680         (open_vbox):
3681         (open_hvbox):
3682         (open_hovbox):
3683         (open_box):
3684         (close_box):
3685         (open_tag):
3686         (close_tag):
3687         (print_as):
3688         (print_string):
3689         (print_int):
3690         (print_float):
3691         (print_bool):
3692         (print_cut):
3693         (print_space):
3694         (force_newline):
3695         (print_flush):
3696         (print_newline):
3697         (print_if_newline):
3698         (open_tbox):
3699         (close_tbox):
3700         (print_tbreak):
3701         (set_tab):
3702         (print_tab):
3703         (set_margin):
3704         (get_margin):
3705         (set_max_indent):
3706         (get_max_indent):
3707         (set_max_boxes):
3708         (get_max_boxes):
3709         (over_max_boxes):
3710         (set_ellipsis_text):
3711         (get_ellipsis_text):
3712         (set_formatter_out_channel):
3713         (set_formatter_out_functions):
3714         (get_formatter_out_functions):
3715         (set_formatter_output_functions):
3716         (get_formatter_output_functions):
3717         (set_all_formatter_output_functions):
3718         (get_all_formatter_output_functions):
3719         (set_formatter_tag_functions):
3720         (get_formatter_tag_functions):
3721         (set_print_tags):
3722         (get_print_tags):
3723         (set_mark_tags):
3724         (get_mark_tags):
3725         (set_tags):
3726         (compute_tag):
3727         (output_formatting_lit):
3728         (kfprintf):
3729         (ikfprintf):
3730         (fprintf):
3731         (ifprintf):
3732         (printf):
3733         (eprintf):
3734         (k.prime):
3735         (ksprintf):
3736         (sprintf):
3737         (asprintf.k.prime):
3738         (asprintf):
3739         (k):
3740         (bprintf):
3741         (succ):
3742         (pred):
3743         (abs):
3744         (lognot):
3745         (Make.cmp_u):
3746         (Make.divrem_u):
3747         (Make.div_s):
3748         (Make.div_u):
3749         (Make.rem_s):
3750         (Make.rem_u):
3751         (Make.shift):
3752         (Make.shl):
3753         (Make.shr_s):
3754         (Make.shr_u):
3755         (Make.clamp_rotate_count):
3756         (Make.rotl):
3757         (Make.rotr):
3758         (Make.loop):
3759         (Make.clz):
3760         (Make.ctz):
3761         (Make.popcnt):
3762         (Make.eqz):
3763         (Make.lt_u):
3764         (Make.le_u):
3765         (Make.gt_u):
3766         (Make.ge_u):
3767         (Make.of_int_u):
3768         (Make.to_string_u):
3769         (Make.require):
3770         (Make.dec_digit):
3771         (Make.hex_digit):
3772         (Make.parse_int):
3773         (Make.of_string_s):
3774         (Make.of_string_u):
3775         (convert_pos):
3776         (error_nest):
3777         (text):
3778         (intop):
3779         (floatop):
3780         (numop):
3781         (memsz):
3782         (ext):
3783         (token.else.switch):
3784         (token.else.switch.):
3785         (token):
3786         (__ocaml_lex_comment_rec):
3787         (engine):
3788         (new_engine):
3789         (from_function):
3790         (from_channel):
3791         (from_string):
3792         (lexeme):
3793         (sub_lexeme):
3794         (sub_lexeme_opt):
3795         (sub_lexeme_char):
3796         (sub_lexeme_char_opt):
3797         (lexeme_char):
3798         (lexeme_start):
3799         (lexeme_end):
3800         (lexeme_start_p):
3801         (lexeme_end_p):
3802         (new_line):
3803         (flush_input):
3804         (take):
3805         (drop):
3806         (last):
3807         (split_last):
3808         (index_of):
3809         (index_of_int32):
3810         (dim):
3811         (set 1):
3812         (get 2):
3813         (log2):
3814         (is_power_of_two):
3815         (loop):
3816         (breakup):
3817         (hd):
3818         (tl):
3819         (rev_append):
3820         (rev):
3821         (flatten):
3822         (rev_map):
3823         (map2):
3824         (rev_map2):
3825         (iter2):
3826         (fold_left2):
3827         (fold_right2):
3828         (for_all):
3829         (exists):
3830         (for_all2):
3831         (exists2):
3832         (mem):
3833         (memq):
3834         (assoc):
3835         (assq):
3836         (mem_assoc):
3837         (mem_assq):
3838         (remove_assoc):
3839         (remove_assq):
3840         (find):
3841         (find_all):
3842         (partition):
3843         (split):
3844         (combine):
3845         (chop):
3846         (rev_sort):
3847         (sort_uniq):
3848         (Make.height):
3849         (Make.create):
3850         (Make.singleton):
3851         (Make.bal):
3852         (Make.is_empty):
3853         (Make.find):
3854         (Make.mem):
3855         (Make.min_binding):
3856         (Make.max_binding):
3857         (Make.remove_min_binding):
3858         (Make.remove):
3859         (Make.iter):
3860         (Make.map):
3861         (Make.mapi):
3862         (Make.fold):
3863         (Make.for_all):
3864         (Make.exists):
3865         (Make.add_min_binding):
3866         (Make.add_max_binding):
3867         (Make.join):
3868         (Make.concat):
3869         (Make.concat_or_join):
3870         (Make.split):
3871         (Make.merge):
3872         (Make.filter):
3873         (Make.partition):
3874         (Make.cons_enum):
3875         (Make.compare):
3876         (Make.equal):
3877         (Make.cardinal):
3878         (Make.bindings_aux):
3879         (Make.bindings):
3880         (double_field):
3881         (set_double_field):
3882         (marshal):
3883         (unmarshal):
3884         (extension_slot):
3885         (extension_name):
3886         (extension_id):
3887         (i32_const):
3888         (i64_const):
3889         (f32_const):
3890         (f64_const):
3891         (block):
3892         (br):
3893         (br_if):
3894         (br_table):
3895         (if_):
3896         (call):
3897         (call_indirect):
3898         (get_local):
3899         (set_local):
3900         (tee_local):
3901         (get_global):
3902         (set_global):
3903         (i32_load):
3904         (i64_load):
3905         (f32_load):
3906         (f64_load):
3907         (i32_load8_s):
3908         (i32_load8_u):
3909         (i32_load16_s):
3910         (i32_load16_u):
3911         (i64_load8_s):
3912         (i64_load8_u):
3913         (i64_load16_s):
3914         (i64_load16_u):
3915         (i64_load32_s):
3916         (i64_load32_u):
3917         (i32_store):
3918         (i64_store):
3919         (f32_store):
3920         (f64_store):
3921         (i32_store8):
3922         (i32_store16):
3923         (i64_store8):
3924         (i64_store16):
3925         (i64_store32):
3926         (parse):
3927         (string_to):
3928         (string_to_script):
3929         (string_to_module):
3930         (parse_error):
3931         (position_to_pos):
3932         (positions_to_region):
3933         (ati):
3934         (nat):
3935         (nat32):
3936         (empty_context):
3937         (enter_func):
3938         (type_):
3939         (lookup):
3940         (label):
3941         (anon_type):
3942         (bind):
3943         (bind_func):
3944         (bind_local):
3945         (bind_global):
3946         (bind_table):
3947         (bind_memory):
3948         (anon):
3949         (anon_func):
3950         (anon_locals):
3951         (anon_global):
3952         (anon_table):
3953         (anon_memory):
3954         (anon_label):
3955         (explicit_sig):
3956         (inline_type):
3957         (yyact):
3958         (script1):
3959         (module1):
3960         (grow_stacks):
3961         (clear_parser):
3962         (current_lookahead_fun):
3963         (catch.else.current_lookahead_fun.0):
3964         (yyparse):
3965         (peek_val):
3966         (symbol_start_pos):
3967         (symbol_end_pos):
3968         (rhs_start_pos):
3969         (rhs_end_pos):
3970         (symbol_start):
3971         (symbol_end):
3972         (rhs_start):
3973         (rhs_end):
3974         (is_current_lookahead):
3975         (failwith):
3976         (invalid_arg):
3977         (min):
3978         (max):
3979         (lnot):
3980         (char_of_int):
3981         (string_of_bool):
3982         (bool_of_string):
3983         (string_of_int):
3984         (valid_float_lexem):
3985         (string_of_float):
3986         (open_out_gen):
3987         (open_out):
3988         (open_out_bin):
3989         (flush_all):
3990         (output_bytes):
3991         (output_string):
3992         (output):
3993         (output_substring):
3994         (output_value):
3995         (close_out):
3996         (close_out_noerr):
3997         (open_in_gen):
3998         (open_in):
3999         (open_in_bin):
4000         (input):
4001         (else.r):
4002         (unsafe_really_input):
4003         (really_input):
4004         (really_input_string):
4005         (input_line.build_result):
4006         (input_line.n):
4007         (input_line.scan):
4008         (input_line):
4009         (close_in_noerr):
4010         (print_bytes):
4011         (print_endline):
4012         (prerr_char):
4013         (prerr_string):
4014         (prerr_bytes):
4015         (prerr_int):
4016         (prerr_float):
4017         (prerr_endline):
4018         (prerr_newline):
4019         (read_line):
4020         (read_int):
4021         (read_float):
4022         (string_of_format):
4023         (at_exit.exit_function.0):
4024         (at_exit):
4025         (do_at_exit):
4026         (exit):
4027         (output_binary_int):
4028         (seek_out):
4029         (pos_out):
4030         (out_channel_length):
4031         (set_binary_mode_out):
4032         (input_binary_int):
4033         (input_value):
4034         (seek_in):
4035         (pos_in):
4036         (in_channel_length):
4037         (close_in):
4038         (set_binary_mode_in):
4039         (LargeFile_000):
4040         (LargeFile_001):
4041         (LargeFile_002):
4042         (LargeFile_003):
4043         (LargeFile_004):
4044         (LargeFile_005):
4045         (kbprintf):
4046         (plus):
4047         (pp):
4048         (print):
4049         (string_of_pos):
4050         (string_of_region):
4051         (escaped.needs_escape):
4052         (set_signal):
4053         (catch_break):
4054         (size):
4055         (string_of_value_type):
4056         (string_of_value_types):
4057         (string_of_elem_type):
4058         (string_of_limits):
4059         (string_of_table_type):
4060         (string_of_global_type):
4061         (string_of_stack_type):
4062         (string_of_func_type):
4063         (type_of):
4064         (default_value):
4065         (value_of_bool):
4066         (string_of_values):
4067         (to_value):
4068         (of_value):
4069         (g):
4070         (binary):
4071         (bytes):
4072         * wasm/spec-tests/address.wast.js:
4073         (register): Deleted.
4074         (module): Deleted.
4075         (instance): Deleted.
4076         (assert_malformed): Deleted.
4077         (assert_invalid): Deleted.
4078         (assert_soft_invalid): Deleted.
4079         (assert_unlinkable): Deleted.
4080         (assert_uninstantiable): Deleted.
4081         (assert_trap): Deleted.
4082         (assert_return): Deleted.
4083         (assert_return_nan): Deleted.
4084         * wasm/spec-tests/binary.wast.js:
4085         (register): Deleted.
4086         (module): Deleted.
4087         (instance): Deleted.
4088         (assert_malformed): Deleted.
4089         (assert_invalid): Deleted.
4090         (assert_soft_invalid): Deleted.
4091         (assert_unlinkable): Deleted.
4092         (assert_uninstantiable): Deleted.
4093         (assert_trap): Deleted.
4094         (assert_return): Deleted.
4095         (assert_return_nan): Deleted.
4096         * wasm/spec-tests/block.wast.js:
4097         (register): Deleted.
4098         (module): Deleted.
4099         (instance): Deleted.
4100         (assert_malformed): Deleted.
4101         (assert_invalid): Deleted.
4102         (assert_soft_invalid): Deleted.
4103         (assert_unlinkable): Deleted.
4104         (assert_uninstantiable): Deleted.
4105         (assert_trap): Deleted.
4106         (assert_return): Deleted.
4107         (assert_return_nan): Deleted.
4108         * wasm/spec-tests/br.wast.js:
4109         (register): Deleted.
4110         (module): Deleted.
4111         (instance): Deleted.
4112         (assert_malformed): Deleted.
4113         (assert_invalid): Deleted.
4114         (assert_soft_invalid): Deleted.
4115         (assert_unlinkable): Deleted.
4116         (assert_uninstantiable): Deleted.
4117         (assert_trap): Deleted.
4118         (assert_return): Deleted.
4119         (assert_return_nan): Deleted.
4120         * wasm/spec-tests/br_if.wast.js:
4121         (register): Deleted.
4122         (module): Deleted.
4123         (instance): Deleted.
4124         (assert_malformed): Deleted.
4125         (assert_invalid): Deleted.
4126         (assert_soft_invalid): Deleted.
4127         (assert_unlinkable): Deleted.
4128         (assert_uninstantiable): Deleted.
4129         (assert_trap): Deleted.
4130         (assert_return): Deleted.
4131         (assert_return_nan): Deleted.
4132         * wasm/spec-tests/br_table.wast.js:
4133         (register): Deleted.
4134         (module): Deleted.
4135         (instance): Deleted.
4136         (assert_malformed): Deleted.
4137         (assert_invalid): Deleted.
4138         (assert_soft_invalid): Deleted.
4139         (assert_unlinkable): Deleted.
4140         (assert_uninstantiable): Deleted.
4141         (assert_trap): Deleted.
4142         (assert_return): Deleted.
4143         (assert_return_nan): Deleted.
4144         * wasm/spec-tests/break-drop.wast.js:
4145         (register): Deleted.
4146         (module): Deleted.
4147         (instance): Deleted.
4148         (assert_malformed): Deleted.
4149         (assert_invalid): Deleted.
4150         (assert_soft_invalid): Deleted.
4151         (assert_unlinkable): Deleted.
4152         (assert_uninstantiable): Deleted.
4153         (assert_trap): Deleted.
4154         (assert_return): Deleted.
4155         (assert_return_nan): Deleted.
4156         * wasm/spec-tests/call.wast.js:
4157         (register): Deleted.
4158         (module): Deleted.
4159         (instance): Deleted.
4160         (assert_malformed): Deleted.
4161         (assert_invalid): Deleted.
4162         (assert_soft_invalid): Deleted.
4163         (assert_unlinkable): Deleted.
4164         (assert_uninstantiable): Deleted.
4165         (assert_trap): Deleted.
4166         (assert_return): Deleted.
4167         (assert_return_nan): Deleted.
4168         * wasm/spec-tests/call_indirect.wast.js:
4169         (register): Deleted.
4170         (module): Deleted.
4171         (instance): Deleted.
4172         (assert_malformed): Deleted.
4173         (assert_invalid): Deleted.
4174         (assert_soft_invalid): Deleted.
4175         (assert_unlinkable): Deleted.
4176         (assert_uninstantiable): Deleted.
4177         (assert_trap): Deleted.
4178         (assert_return): Deleted.
4179         (assert_return_nan): Deleted.
4180         * wasm/spec-tests/comments.wast.js:
4181         (register): Deleted.
4182         (module): Deleted.
4183         (instance): Deleted.
4184         (assert_malformed): Deleted.
4185         (assert_invalid): Deleted.
4186         (assert_soft_invalid): Deleted.
4187         (assert_unlinkable): Deleted.
4188         (assert_uninstantiable): Deleted.
4189         (assert_trap): Deleted.
4190         (assert_return): Deleted.
4191         (assert_return_nan): Deleted.
4192         * wasm/spec-tests/conversions.wast.js:
4193         (register): Deleted.
4194         (module): Deleted.
4195         (instance): Deleted.
4196         (assert_malformed): Deleted.
4197         (assert_invalid): Deleted.
4198         (assert_soft_invalid): Deleted.
4199         (assert_unlinkable): Deleted.
4200         (assert_uninstantiable): Deleted.
4201         (assert_trap): Deleted.
4202         (assert_return): Deleted.
4203         (assert_return_nan): Deleted.
4204         * wasm/spec-tests/custom_section.wast.js:
4205         (register): Deleted.
4206         (module): Deleted.
4207         (instance): Deleted.
4208         (assert_malformed): Deleted.
4209         (assert_invalid): Deleted.
4210         (assert_soft_invalid): Deleted.
4211         (assert_unlinkable): Deleted.
4212         (assert_uninstantiable): Deleted.
4213         (assert_trap): Deleted.
4214         (assert_return): Deleted.
4215         (assert_return_nan): Deleted.
4216         * wasm/spec-tests/endianness.wast.js:
4217         (register): Deleted.
4218         (module): Deleted.
4219         (instance): Deleted.
4220         (assert_malformed): Deleted.
4221         (assert_invalid): Deleted.
4222         (assert_soft_invalid): Deleted.
4223         (assert_unlinkable): Deleted.
4224         (assert_uninstantiable): Deleted.
4225         (assert_trap): Deleted.
4226         (assert_return): Deleted.
4227         (assert_return_nan): Deleted.
4228         * wasm/spec-tests/exports.wast.js:
4229         (register): Deleted.
4230         (module): Deleted.
4231         (instance): Deleted.
4232         (assert_malformed): Deleted.
4233         (assert_invalid): Deleted.
4234         (assert_soft_invalid): Deleted.
4235         (assert_unlinkable): Deleted.
4236         (assert_uninstantiable): Deleted.
4237         (assert_trap): Deleted.
4238         (assert_return): Deleted.
4239         (assert_return_nan): Deleted.
4240         * wasm/spec-tests/f32.wast.js: Removed.
4241         * wasm/spec-tests/f32_cmp.wast.js:
4242         (register): Deleted.
4243         (module): Deleted.
4244         (instance): Deleted.
4245         (assert_malformed): Deleted.
4246         (assert_invalid): Deleted.
4247         (assert_soft_invalid): Deleted.
4248         (assert_unlinkable): Deleted.
4249         (assert_uninstantiable): Deleted.
4250         (assert_trap): Deleted.
4251         (assert_return): Deleted.
4252         (assert_return_nan): Deleted.
4253         * wasm/spec-tests/f64.wast.js: Removed.
4254         * wasm/spec-tests/f64_cmp.wast.js:
4255         (register): Deleted.
4256         (module): Deleted.
4257         (instance): Deleted.
4258         (assert_malformed): Deleted.
4259         (assert_invalid): Deleted.
4260         (assert_soft_invalid): Deleted.
4261         (assert_unlinkable): Deleted.
4262         (assert_uninstantiable): Deleted.
4263         (assert_trap): Deleted.
4264         (assert_return): Deleted.
4265         (assert_return_nan): Deleted.
4266         * wasm/spec-tests/fac.wast.js:
4267         (register): Deleted.
4268         (module): Deleted.
4269         (instance): Deleted.
4270         (assert_malformed): Deleted.
4271         (assert_invalid): Deleted.
4272         (assert_soft_invalid): Deleted.
4273         (assert_unlinkable): Deleted.
4274         (assert_uninstantiable): Deleted.
4275         (assert_trap): Deleted.
4276         (assert_return): Deleted.
4277         (assert_return_nan): Deleted.
4278         * wasm/spec-tests/float_exprs.wast.js: Removed.
4279         * wasm/spec-tests/float_literals.wast.js:
4280         (register): Deleted.
4281         (module): Deleted.
4282         (instance): Deleted.
4283         (assert_malformed): Deleted.
4284         (assert_invalid): Deleted.
4285         (assert_soft_invalid): Deleted.
4286         (assert_unlinkable): Deleted.
4287         (assert_uninstantiable): Deleted.
4288         (assert_trap): Deleted.
4289         (assert_return): Deleted.
4290         (assert_return_nan): Deleted.
4291         * wasm/spec-tests/float_memory.wast.js:
4292         (register): Deleted.
4293         (module): Deleted.
4294         (instance): Deleted.
4295         (assert_malformed): Deleted.
4296         (assert_invalid): Deleted.
4297         (assert_soft_invalid): Deleted.
4298         (assert_unlinkable): Deleted.
4299         (assert_uninstantiable): Deleted.
4300         (assert_trap): Deleted.
4301         (assert_return): Deleted.
4302         (assert_return_nan): Deleted.
4303         * wasm/spec-tests/float_misc.wast.js: Removed.
4304         * wasm/spec-tests/forward.wast.js:
4305         (register): Deleted.
4306         (module): Deleted.
4307         (instance): Deleted.
4308         (assert_malformed): Deleted.
4309         (assert_invalid): Deleted.
4310         (assert_soft_invalid): Deleted.
4311         (assert_unlinkable): Deleted.
4312         (assert_uninstantiable): Deleted.
4313         (assert_trap): Deleted.
4314         (assert_return): Deleted.
4315         (assert_return_nan): Deleted.
4316         * wasm/spec-tests/func.wast.js:
4317         (register): Deleted.
4318         (module): Deleted.
4319         (instance): Deleted.
4320         (assert_malformed): Deleted.
4321         (assert_invalid): Deleted.
4322         (assert_soft_invalid): Deleted.
4323         (assert_unlinkable): Deleted.
4324         (assert_uninstantiable): Deleted.
4325         (assert_trap): Deleted.
4326         (assert_return): Deleted.
4327         (assert_return_nan): Deleted.
4328         * wasm/spec-tests/func_ptrs.wast.js:
4329         (register): Deleted.
4330         (module): Deleted.
4331         (instance): Deleted.
4332         (assert_malformed): Deleted.
4333         (assert_invalid): Deleted.
4334         (assert_soft_invalid): Deleted.
4335         (assert_unlinkable): Deleted.
4336         (assert_uninstantiable): Deleted.
4337         (assert_trap): Deleted.
4338         (assert_return): Deleted.
4339         (assert_return_nan): Deleted.
4340         * wasm/spec-tests/get_local.wast.js:
4341         (register): Deleted.
4342         (module): Deleted.
4343         (instance): Deleted.
4344         (assert_malformed): Deleted.
4345         (assert_invalid): Deleted.
4346         (assert_soft_invalid): Deleted.
4347         (assert_unlinkable): Deleted.
4348         (assert_uninstantiable): Deleted.
4349         (assert_trap): Deleted.
4350         (assert_return): Deleted.
4351         (assert_return_nan): Deleted.
4352         * wasm/spec-tests/globals.wast.js:
4353         (register): Deleted.
4354         (module): Deleted.
4355         (instance): Deleted.
4356         (assert_malformed): Deleted.
4357         (assert_invalid): Deleted.
4358         (assert_soft_invalid): Deleted.
4359         (assert_unlinkable): Deleted.
4360         (assert_uninstantiable): Deleted.
4361         (assert_trap): Deleted.
4362         (assert_return): Deleted.
4363         (assert_return_nan): Deleted.
4364         * wasm/spec-tests/i32.wast.js:
4365         (register): Deleted.
4366         (module): Deleted.
4367         (instance): Deleted.
4368         (assert_malformed): Deleted.
4369         (assert_invalid): Deleted.
4370         (assert_soft_invalid): Deleted.
4371         (assert_unlinkable): Deleted.
4372         (assert_uninstantiable): Deleted.
4373         (assert_trap): Deleted.
4374         (assert_return): Deleted.
4375         (assert_return_nan): Deleted.
4376         * wasm/spec-tests/i64.wast.js:
4377         (register): Deleted.
4378         (module): Deleted.
4379         (instance): Deleted.
4380         (assert_malformed): Deleted.
4381         (assert_invalid): Deleted.
4382         (assert_soft_invalid): Deleted.
4383         (assert_unlinkable): Deleted.
4384         (assert_uninstantiable): Deleted.
4385         (assert_trap): Deleted.
4386         (assert_return): Deleted.
4387         (assert_return_nan): Deleted.
4388         * wasm/spec-tests/if.wast.js: Added.
4389         * wasm/spec-tests/imports.wast.js:
4390         (register): Deleted.
4391         (module): Deleted.
4392         (instance): Deleted.
4393         (assert_malformed): Deleted.
4394         (assert_invalid): Deleted.
4395         (assert_soft_invalid): Deleted.
4396         (assert_unlinkable): Deleted.
4397         (assert_uninstantiable): Deleted.
4398         (assert_trap): Deleted.
4399         (assert_return): Deleted.
4400         (assert_return_nan): Deleted.
4401         * wasm/spec-tests/int_exprs.wast.js:
4402         (register): Deleted.
4403         (module): Deleted.
4404         (instance): Deleted.
4405         (assert_malformed): Deleted.
4406         (assert_invalid): Deleted.
4407         (assert_soft_invalid): Deleted.
4408         (assert_unlinkable): Deleted.
4409         (assert_uninstantiable): Deleted.
4410         (assert_trap): Deleted.
4411         (assert_return): Deleted.
4412         (assert_return_nan): Deleted.
4413         * wasm/spec-tests/int_literals.wast.js:
4414         (register): Deleted.
4415         (module): Deleted.
4416         (instance): Deleted.
4417         (assert_malformed): Deleted.
4418         (assert_invalid): Deleted.
4419         (assert_soft_invalid): Deleted.
4420         (assert_unlinkable): Deleted.
4421         (assert_uninstantiable): Deleted.
4422         (assert_trap): Deleted.
4423         (assert_return): Deleted.
4424         (assert_return_nan): Deleted.
4425         * wasm/spec-tests/jsapi.js: Added.
4426         (testJSAPI.get test):
4427         (testJSAPI.test):
4428         (testJSAPI.set test):
4429         (testJSAPI.assertCompileError):
4430         (testJSAPI.assertCompileSuccess):
4431         (testJSAPI):
4432         * wasm/spec-tests/labels.wast.js: Added.
4433         * wasm/spec-tests/left-to-right.wast.js:
4434         (register): Deleted.
4435         (module): Deleted.
4436         (instance): Deleted.
4437         (assert_malformed): Deleted.
4438         (assert_invalid): Deleted.
4439         (assert_soft_invalid): Deleted.
4440         (assert_unlinkable): Deleted.
4441         (assert_uninstantiable): Deleted.
4442         (assert_trap): Deleted.
4443         (assert_return): Deleted.
4444         (assert_return_nan): Deleted.
4445         * wasm/spec-tests/linking.wast.js:
4446         (register): Deleted.
4447         (module): Deleted.
4448         (instance): Deleted.
4449         (assert_malformed): Deleted.
4450         (assert_invalid): Deleted.
4451         (assert_soft_invalid): Deleted.
4452         (assert_unlinkable): Deleted.
4453         (assert_uninstantiable): Deleted.
4454         (assert_trap): Deleted.
4455         (assert_return): Deleted.
4456         (assert_return_nan): Deleted.
4457         * wasm/spec-tests/loop.wast.js:
4458         (register): Deleted.
4459         (module): Deleted.
4460         (instance): Deleted.
4461         (assert_malformed): Deleted.
4462         (assert_invalid): Deleted.
4463         (assert_soft_invalid): Deleted.
4464         (assert_unlinkable): Deleted.
4465         (assert_uninstantiable): Deleted.
4466         (assert_trap): Deleted.
4467         (assert_return): Deleted.
4468         (assert_return_nan): Deleted.
4469         * wasm/spec-tests/memory.wast.js:
4470         (register): Deleted.
4471         (module): Deleted.
4472         (instance): Deleted.
4473         (assert_malformed): D