Initialize functions too early in an eval
[WebKit-https.git] / JSTests / ChangeLog
1 2017-04-30  Oleksandr Skachkov  <gskachkov@gmail.com>
2
3         We initialize functions too early in an eval
4         https://bugs.webkit.org/show_bug.cgi?id=161099
5
6         Reviewed by Saam Barati.
7
8         * stress/eval-func-decl-with-let-const-class.js: Added.
9
10 2017-04-30  Oleksandr Skachkov  <gskachkov@gmail.com>
11
12         [ES6]. Implement Annex B.3.3 function hoisting rules for eval
13         https://bugs.webkit.org/show_bug.cgi?id=163208
14
15         Reviewed by Saam Barati.
16
17         * stress/eval-func-decl-block-scoping-reassign.js: Added.
18         (assert):
19         (throw.new.Error.f):
20         (throw.new.Error):
21         * stress/eval-func-decl-block-with-remove.js: Added.
22         (assert):
23         (foo.boo):
24         (foo):
25         * stress/eval-func-decl-block-with-var-and-remove.js: Added.
26         (assert):
27         (assertThrow):
28         (foo):
29         (boo):
30         (joo):
31         (koo):
32         * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
33         (assert):
34         (assertThrow):
35         (foo):
36         (boo):
37         (hoo):
38         (joo):
39         (koo):
40         * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
41         * stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
42         (assert):
43         (assertThrow):
44         (foo):
45         (boo):
46         (goo):
47         * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
48         (assert):
49         (assertThrow):
50         (foo):
51         (boo):
52         (boo.let.val2):
53         (boo.let.val3):
54         * stress/eval-func-decl-in-frozen-global.js: Added.
55         (assert):
56         (assertThrow):
57         (throw.new.Error):
58         (Object.freeze):
59         * stress/eval-func-decl-in-global-of-eval.js: Added.
60         (assert):
61         (assertThrow):
62         (bar):
63         (baz):
64         (foobar):
65         * stress/eval-func-decl-in-global.js: Added.
66         (assert):
67         (assertThrow):
68         * stress/eval-func-decl-in-if.js: Added.
69         (assert):
70         * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
71         (assert):
72         (assertThrow):
73         (foo):
74         (boo):
75         (foobar):
76         (hoo):
77         (joo):
78         (koo):
79         (loo):
80         * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
81         (assert):
82         (assertThrow):
83         (foo):
84         (boo):
85         (goo):
86         * stress/variable-under-tdz-eval-tricky.js:
87         (assert):
88         * test262.yaml:
89
90 2017-04-27  Mark Lam  <mark.lam@apple.com>
91
92         Fix some RELEASE_ASSERT failures caused by OutOfMemoryErrors.
93         https://bugs.webkit.org/show_bug.cgi?id=171404
94         <rdar://problem/31876178>
95
96         Reviewed by Saam Barati.
97
98         * stress/js-fixed-array-out-of-memory.js: Added.
99
100 2017-04-27  David Kilzer  <ddkilzer@apple.com>
101
102         Enhance shouldBe()/shouldNotBe() to accept anonymous function arguments
103         <https://webkit.org/b/171362>
104         <rdar://problem/31867686>
105
106         Reviewed by Joseph Pecoraro.
107
108         * stress/resources/standalone-pre.js:
109         (shouldBe):
110         (shouldNotThrow):
111         (shouldThrow):
112         - Update shouldBe() to accept anonymous function arguments.
113           (The shouldNotBe() function was never copied over.)
114         - Also fix shouldThrow()/shouldNotThrow() to accept anonymous
115           function arguments (which were missed in r202609 for Bug
116           159232).
117
118 2017-04-27  Yusuke Suzuki  <utatane.tea@gmail.com>
119
120         [JSC] Handle PhantomSpread in LoadVarargs as the same to the others
121         https://bugs.webkit.org/show_bug.cgi?id=171262
122
123         Reviewed by Saam Barati.
124
125         * stress/spread-outer-create-rest.js: Added.
126         (assert):
127         (foo):
128         (bar):
129         (baz):
130
131 2017-04-26  Saam Barati  <sbarati@apple.com>
132
133         Print Wasm function index in stack trace
134         https://bugs.webkit.org/show_bug.cgi?id=171349
135
136         Reviewed by JF Bastien.
137
138         * wasm/function-tests/stack-trace.js: Added.
139         (import.Builder.from.string_appeared_here.assert):
140         (let.imp):
141         * wasm/function-tests/trap-after-cross-instance-call.js:
142         (wasmFrameCountFromError):
143         * wasm/function-tests/trap-load-2.js:
144         (wasmFrameCountFromError):
145         * wasm/function-tests/trap-load.js:
146         (wasmFrameCountFromError):
147
148 2017-04-26  Saam Barati  <sbarati@apple.com>
149
150         ASSERTION FAILED: inIndex != notFound in JSC::invalidParameterInSourceAppender()
151         https://bugs.webkit.org/show_bug.cgi?id=170924
152         <rdar://problem/31721052>
153
154         Reviewed by Mark Lam.
155
156         * stress/error-message-for-function-base-not-found.js: Added.
157         (assert):
158         (throw.new.Error):
159         * stress/error-messages-for-in-operator-should-not-crash.js: Added.
160         (catch):
161
162 2017-04-26  Keith Miller  <keith_miller@apple.com>
163
164         WebAssembly: Implement tier up
165         https://bugs.webkit.org/show_bug.cgi?id=170134
166
167         Reviewed by Filip Pizlo.
168
169         * wasm/function-tests/trap-after-cross-instance-call.js:
170         * wasm/tier-up/js-to-wasm.js: Added.
171         (async.test):
172         * wasm/tier-up/wasm-to-wasm.js: Added.
173         (async.test):
174
175 2017-04-26  Caitlin Potter  <caitp@igalia.com>
176
177         [JSC] Object.keys() must discard property names with no PropertyDescriptor
178         https://bugs.webkit.org/show_bug.cgi?id=171291
179
180         Reviewed by Yusuke Suzuki.
181
182         * es6/Proxy_ownKeys_duplicates.js:
183         * stress/proxy-own-keys.js:
184         (let.handler.getOwnPropertyDescriptor):
185         (let.handler.ownKeys):
186
187 2017-04-25  Commit Queue  <commit-queue@webkit.org>
188
189         Unreviewed, rolling out r215476.
190         https://bugs.webkit.org/show_bug.cgi?id=171304
191
192         "It broke JSBench" (Requested by saamyjoon on #webkit).
193
194         Reverted changeset:
195
196         "[ES6]. Implement Annex B.3.3 function hoisting rules for
197         eval"
198         https://bugs.webkit.org/show_bug.cgi?id=163208
199         http://trac.webkit.org/changeset/215476
200
201 2017-04-25  Saam Barati  <sbarati@apple.com>
202
203         JSArray::isArrayPrototypeIteratorProtocolFastAndNonObservable is wrong because it does not do the necessary checks on the base object
204         https://bugs.webkit.org/show_bug.cgi?id=171150
205         <rdar://problem/31771880>
206
207         Reviewed by Sam Weinig.
208
209         * stress/spread-optimized-properly.js: Added.
210         (assert):
211         (test):
212         (shallowEq):
213         (makeArrayIterator):
214         (test.bar):
215         (test.callback):
216         (test.arr.__proto__.Symbol.iterator):
217         (test.arr.Symbol.iterator):
218         (test.get bar):
219         (test.hackedNext):
220         (test.test):
221         (test.):
222
223 2017-04-25  Mark Lam  <mark.lam@apple.com>
224
225         [Follow up] Array.prototype.slice() should ensure that end >= begin.
226         https://bugs.webkit.org/show_bug.cgi?id=170989
227         <rdar://problem/31705652>
228
229         Not reviewed.
230
231         Follow up to rename a test file that was accidentally named wrongly.
232
233         * stress/regress-170989.js: Copied from JSTests/stress/regress-170989.patch.
234         * stress/regress-170989.patch: Removed.
235
236 2017-04-25  Mark Lam  <mark.lam@apple.com>
237
238         Array.prototype.slice() should ensure that end >= begin.
239         https://bugs.webkit.org/show_bug.cgi?id=170989
240         <rdar://problem/31705652>
241
242         Reviewed by Saam Barati.
243
244         * stress/regress-170989.patch: Added.
245
246 2017-04-25  Mark Lam  <mark.lam@apple.com>
247
248         Local CSE wrongly CSEs array accesses with different result types.
249         https://bugs.webkit.org/show_bug.cgi?id=170990
250         <rdar://problem/31705945>
251
252         Reviewed by Saam Barati.
253
254         * stress/regress-170990.js: Added.
255
256 2017-04-25  Yusuke Suzuki  <utatane.tea@gmail.com>
257
258         WebAssembly: exporting a property with a name that's a number doesn't work
259         https://bugs.webkit.org/show_bug.cgi?id=168857
260
261         Reviewed by JF Bastien.
262
263         r213453 allows Wasm instances to expose indexed properties. We activate the tests.
264
265         * wasm/js-api/test_Instance.js:
266         (ExportedNumber):
267
268 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
269
270         test262: test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
271         https://bugs.webkit.org/show_bug.cgi?id=171190
272
273         Reviewed by Saam Barati.
274
275         * stress/async-await-syntax.js:
276         * test262.yaml:
277
278 2017-04-24  Yusuke Suzuki  <utatane.tea@gmail.com>
279
280         [JSC] Use JSFixedArray directly when using call_varargs
281         https://bugs.webkit.org/show_bug.cgi?id=171057
282
283         Reviewed by Saam Barati.
284
285         * stress/spread-capture-rest.js: Added.
286         (shouldBe):
287         (capture):
288         (a):
289         (b):
290         * stress/spread-multi-layers.js: Added.
291         (shouldBe):
292         (a):
293         (b):
294         (c):
295         (d):
296         * stress/spread-non-varargs.js: Added.
297         (shouldBe):
298         (a):
299         (b):
300
301 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
302
303         test262: test262/test/language/computed-property-names/class/static/getter-prototype.js
304         https://bugs.webkit.org/show_bug.cgi?id=170897
305
306         Reviewed by Saam Barati.
307
308         * test262.yaml:
309
310 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
311
312         Address some FIXMEs in JavaScript tests for bugs that have been fixed
313         https://bugs.webkit.org/show_bug.cgi?id=171191
314
315         Reviewed by JF Bastien.
316
317         * stress/proxy-is-extensible.js:
318
319 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
320
321         test262: test262/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js
322         https://bugs.webkit.org/show_bug.cgi?id=171160
323
324         Reviewed by JF Bastien.
325
326         * stress/inferred-names.js:
327         * test262.yaml:
328
329 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
330
331         test262: test262/test/language/expressions/generators/yield-as-label.js
332         https://bugs.webkit.org/show_bug.cgi?id=170979
333
334         Reviewed by Saam Barati.
335
336         * stress/async-await-module-reserved-word.js:
337         * stress/async-await-reserved-word.js:
338         Converge on "Cannot" instead of "Can't".
339
340         * catch-parameter-syntax.js:
341         * yield-named-variable-generator.js:
342         * yield-named-variable.js:
343         * stress/yield-label-generator.js:
344         * stress/yield-label.js:
345         * stress/yield-reserved-word.js: Added.
346         More complete list of when 'yield' is allowed.
347
348         * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
349         * test262.yaml:
350
351 2017-04-23  Commit Queue  <commit-queue@webkit.org>
352
353         Unreviewed, rolling out r215674.
354         https://bugs.webkit.org/show_bug.cgi?id=171212
355
356         Possible unintended commit. This patch was on the wrong bug.
357         (Requested by JoePeck on #webkit).
358
359         Reverted changeset:
360
361         "test262: test262/test/language/expressions/generators/yield-
362         as-label.js"
363         https://bugs.webkit.org/show_bug.cgi?id=170979
364         http://trac.webkit.org/changeset/215674
365
366 2017-04-23  Joseph Pecoraro  <pecoraro@apple.com>
367
368         test262: test262/test/built-ins/Number/prototype/toPrecision/nan.js
369         https://bugs.webkit.org/show_bug.cgi?id=171197
370
371         Reviewed by Saam Barati.
372
373         * test262.yaml:
374
375 2017-04-23  Joseph Pecoraro  <pecoraro@apple.com>
376
377         test262: test262/test/language/expressions/generators/yield-as-label.js
378         https://bugs.webkit.org/show_bug.cgi?id=170979
379
380         Reviewed by Saam Barati.
381
382         * stress/async-await-module-reserved-word.js:
383         * stress/async-await-reserved-word.js:
384         Converge on "Cannot" instead of "Can't".
385
386         * catch-parameter-syntax.js:
387         * yield-named-variable-generator.js:
388         * yield-named-variable.js:
389         * stress/yield-label-generator.js:
390         * stress/yield-label.js:
391         * stress/yield-reserved-word.js: Added.
392         More complete list of when 'yield' is allowed.
393
394         * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
395         * test262.yaml:
396
397 2017-04-23  Joseph Pecoraro  <pecoraro@apple.com>
398
399         test262: test262/test/built-ins/Number/parseFloat.js
400         https://bugs.webkit.org/show_bug.cgi?id=171193
401
402         Reviewed by Yusuke Suzuki.
403
404         * test262.yaml:
405
406 2017-04-22  JF Bastien  <jfbastien@apple.com>
407
408         WebAssembly: Module.exports, Module.imports, Module.customSections are wrong
409         https://bugs.webkit.org/show_bug.cgi?id=171078
410
411         Reviewed by Saam Barati.
412
413         They're static properties of Module, not instance properties of a module.
414         https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymoduleexports
415
416         * wasm/js-api/Module.customSection.js:
417         (assert.throws.WebAssembly.Module.customSections):
418         (assert.eq):
419         (assert.throws.WebAssembly.Module.prototype.customSections): Deleted.
420         * wasm/js-api/Module.exports.js:
421         (assert.throws.WebAssembly.Module.exports):
422         (assert.truthy):
423         (assert.throws.WebAssembly.Module.prototype.exports): Deleted.
424         * wasm/js-api/Module.imports.js:
425         (assert.throws.WebAssembly.Module.imports):
426         (assert.truthy):
427         (assert.throws.WebAssembly.Module.prototype.imports): Deleted.
428
429 2017-04-21  JF Bastien  <jfbastien@apple.com>
430
431         Silence noisy test
432
433         Unreviewed, Fil / Michael and I talked about it in the corridor. I
434         just forgot to set verbose to false before commit.
435
436         * wasm/stress/oom.js:
437
438 2017-04-20  Yusuke Suzuki  <utatane.tea@gmail.com>
439
440         [JSC][FTL] FTL should support Arrayify
441         https://bugs.webkit.org/show_bug.cgi?id=169596
442
443         Reviewed by Saam Barati.
444
445         * stress/arrayify.js: Added.
446         (arrayifyInt32):
447         (arrayifyDouble):
448         (arrayifyContiguous):
449
450 2017-04-20  Mark Lam  <mark.lam@apple.com>
451
452         virtualThunkFor() needs to materialize its of tagMaskRegister for tail calls.
453         https://bugs.webkit.org/show_bug.cgi?id=171079
454         <rdar://problem/31684756>
455
456         Reviewed by Saam Barati.
457
458         * stress/regress-171079.js: Added.
459
460 2017-04-15  Filip Pizlo  <fpizlo@apple.com>
461
462         Optimize SharedArrayBuffer in the DFG+FTL
463         https://bugs.webkit.org/show_bug.cgi?id=164108
464
465         Reviewed by Saam Barati.
466         
467         Added a fairly comprehensive test of the intrinsics. This creates a function for each possible
468         combination of type and operation, and then first uses it nicely and then tries a bunch of
469         erroneous conditions like OOB.
470
471         * stress/SharedArrayBuffer-opt.js: Added.
472         (string_appeared_here.switch):
473         (string_appeared_here.str):
474         (runAtomic):
475         (shouldFail):
476         (Symbol):
477         (string_appeared_here.a.of.arrays.m.of.atomics):
478         * stress/SharedArrayBuffer.js:
479
480 2017-04-19  Mark Lam  <mark.lam@apple.com>
481
482         B3StackmapSpecial should handle when stackmap values are not recoverable from a Def'ed arg.
483         https://bugs.webkit.org/show_bug.cgi?id=170973
484         <rdar://problem/30318657>
485
486         Reviewed by Filip Pizlo.
487
488         * stress/regress-170973.js: Added.
489
490 2017-04-19  JF Bastien  <jfbastien@apple.com>
491
492         WebAssembly: limit slow memories
493         https://bugs.webkit.org/show_bug.cgi?id=170825
494
495         Reviewed by Saam Barati.
496
497         * wasm.yaml:
498         * wasm/stress/oom.js: Added.
499         (try.true.WebAssemblyMemoryMode):
500         (catch):
501
502 2017-04-19  JF Bastien  <jfbastien@apple.com>
503
504         WebAssembly: don't expose any WebAssembly JS object if JIT is off
505         https://bugs.webkit.org/show_bug.cgi?id=170782
506
507         Reviewed by Saam Barati.
508
509         * wasm.yaml:
510         * wasm/noJIT/noJIT.js: Added.
511
512 2017-04-18  Mark Lam  <mark.lam@apple.com>
513
514         r211670 broke double to int conversion.
515         https://bugs.webkit.org/show_bug.cgi?id=170961
516         <rdar://problem/31687696>
517
518         Reviewed by Yusuke Suzuki.
519
520         * microbenchmarks/double-to-int32.js: Added.
521         * stress/to-int32-sensible2.js: Added.
522
523 2017-04-18  Oleksandr Skachkov  <gskachkov@gmail.com>
524
525         [ES6]. Implement Annex B.3.3 function hoisting rules for eval
526         https://bugs.webkit.org/show_bug.cgi?id=163208
527
528         Reviewed by Saam Barati.
529
530         * stress/eval-func-decl-block-scoping-reassign.js: Added.
531         (assert):
532         (throw.new.Error.f):
533         (throw.new.Error):
534         * stress/eval-func-decl-block-with-remove.js: Added.
535         (assert):
536         (foo.boo):
537         (foo):
538         * stress/eval-func-decl-block-with-var-and-remove.js: Added.
539         (assert):
540         (assertThrow):
541         (foo):
542         (boo):
543         (joo):
544         (koo):
545         * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
546         (assert):
547         (assertThrow):
548         (foo):
549         (boo):
550         (hoo):
551         (joo):
552         (koo):
553         * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
554         * stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
555         (assert):
556         (assertThrow):
557         (foo):
558         (boo):
559         (goo):
560         * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
561         (assert):
562         (assertThrow):
563         (foo):
564         (boo):
565         (boo.let.val2):
566         (boo.let.val3):
567         * stress/eval-func-decl-in-frozen-global.js: Added.
568         (assert):
569         (assertThrow):
570         (throw.new.Error):
571         (Object.freeze):
572         * stress/eval-func-decl-in-global-of-eval.js: Added.
573         (assert):
574         (assertThrow):
575         (bar):
576         (baz):
577         (foobar):
578         * stress/eval-func-decl-in-global.js: Added.
579         (assert):
580         (assertThrow):
581         * stress/eval-func-decl-in-if.js: Added.
582         (assert):
583         * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
584         (assert):
585         (assertThrow):
586         (foo):
587         (boo):
588         (foobar):
589         (hoo):
590         (joo):
591         (koo):
592         (loo):
593         * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
594         (assert):
595         (assertThrow):
596         (foo):
597         (boo):
598         (goo):
599         * stress/variable-under-tdz-eval-tricky.js:
600         (assert):
601         * test262.yaml:
602
603 2017-04-18  Filip Pizlo  <fpizlo@apple.com>
604
605         wasm/function-tests/memory-multiagent times out sometimes
606         https://bugs.webkit.org/show_bug.cgi?id=170958
607
608         Reviewed by Keith Miller.
609         
610         Add the ability to skip tests easily. Skip the test.
611
612         * wasm.yaml:
613         * wasm/function-tests/memory-multiagent.js:
614
615 2017-04-18  Saam Barati  <sbarati@apple.com>
616
617         Follow up to debug build stack overflow in test after r215453
618
619         Rubber stamped by Mark Lam.
620
621         * stress/call-apply-exponential-bytecode-size.js: Decrease the call
622         size to prevent stack overflow errors on debug builds.
623
624 2017-04-18  Yusuke Suzuki  <utatane.tea@gmail.com>
625
626         [DFG] Convert ValueAdd(Int32, String) => MakeRope(ToString(Int32), String)
627         https://bugs.webkit.org/show_bug.cgi?id=170943
628
629         Reviewed by Geoffrey Garen.
630
631         * microbenchmarks/number-to-string-with-add-empty.js: Added.
632         (toStringLeft):
633         (toStringRight):
634         * microbenchmarks/number-to-string-with-add-in-loop.js: Added.
635         (toStringLeft):
636         (toStringRight):
637         * microbenchmarks/number-to-string-with-add.js: Added.
638         (toStringLeft):
639         (toStringRight):
640         * stress/number-to-string-with-add.js: Added.
641         (shouldBe):
642         (toStringRight):
643         (toStringLeftEmpty):
644         (toStringRightEmpty):
645
646 2017-04-18  Yusuke Suzuki  <utatane.tea@gmail.com>
647
648         [DFG] Drop unknown use of CheckCell's child2 to work ObjectAllocationSinking for Array iterator object
649         https://bugs.webkit.org/show_bug.cgi?id=170940
650
651         Reviewed by Filip Pizlo.
652
653         * microbenchmarks/for-of-array.js: Added.
654         (fn):
655
656 2017-04-17  Saam Barati  <sbarati@apple.com>
657
658         BytecodeGenerator ".call" and ".apply" is exponential in nesting depth
659         https://bugs.webkit.org/show_bug.cgi?id=139847
660         <rdar://problem/19321122>
661
662         Reviewed by Oliver Hunt.
663
664         * stress/call-apply-exponential-bytecode-size.js: Added.
665         (assert):
666         (const.inc):
667         (const.inc2):
668         (bar):
669         (randomApplyOrCall):
670         (baz):
671         (jaz):
672         (haz):
673         (foo):
674
675 2017-04-17  Mark Lam  <mark.lam@apple.com>
676
677         JSArray::appendMemcpy() needs to handle copying from Undecided indexing type too.
678         https://bugs.webkit.org/show_bug.cgi?id=170896
679         <rdar://problem/31651319>
680
681         Reviewed by JF Bastien and Keith Miller.
682
683         * stress/regress-170896.js: Added.
684
685 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
686
687         test262: test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js
688         https://bugs.webkit.org/show_bug.cgi?id=170882
689
690         Reviewed by Saam Barati.
691
692         * test262.yaml:
693
694 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
695
696         test262: test262/test/built-ins/isNaN/toprimitive-not-callable-throws.js
697         https://bugs.webkit.org/show_bug.cgi?id=170888
698
699         Reviewed by Saam Barati.
700
701         * stress/computed-accessor.js:
702         * stress/eval-in-arrow-function.js:
703         * stress/rest-elements.js:
704         * stress/string-object-define-own-property.js:
705         Remove unused shouldThrow.
706
707         * stress/symbol-toprimitive-errors.js: Added.
708         Check for ToPrimitive TypeErrors.
709
710         * test262.yaml:
711
712 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
713
714         test262: test262/test/language/expressions/tagged-template/template-object.js
715         https://bugs.webkit.org/show_bug.cgi?id=170878
716
717         Reviewed by Saam Barati.
718
719         * stress/array-length-not-writable.js: Added.
720         (assert):
721         * test262.yaml:
722
723 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
724
725         test262: test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js
726         https://bugs.webkit.org/show_bug.cgi?id=170879
727
728         Reviewed by Saam Barati.
729
730         * ChakraCore/test/es5/enumerable.baseline-jsc:
731         * test262.yaml:
732
733 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
734
735         test262: test262/test/built-ins/Date/prototype/Symbol.toPrimitive/name.js
736         https://bugs.webkit.org/show_bug.cgi?id=170884
737
738         Reviewed by Yusuke Suzuki.
739
740         * test262.yaml:
741
742 2017-04-15  Joseph Pecoraro  <pecoraro@apple.com>
743
744         test262: test262/test/language/global-code/new.target-arrow.js
745         https://bugs.webkit.org/show_bug.cgi?id=170872
746
747         Reviewed by Saam Barati.
748
749         * stress/async-arrow-functions-lexical-new.target-binding.js:
750         (shouldThrowAsync): Deleted.
751         (shouldThrowAsync.async): Deleted.
752         This code should have thrown a SyntaxError. Instead it was throwing
753         a ReferenceError for the internal @newTargetLocal variable.
754
755         * stress/new-target-syntax-errors.js:
756         Cover the arrow function in global code cases.
757
758         * ChakraCore.yaml:
759         * ChakraCore/test/es6/globalLambdaNewTargetSyntaxError.baseline-jsc:
760         We now pass with an expected SyntaxError. Our error message is different.
761
762         * test262.yaml:
763
764 2017-04-14  Saam Barati  <sbarati@apple.com>
765
766         ParseInt intrinsic in DFG backend doesn't properly flush its operands
767         https://bugs.webkit.org/show_bug.cgi?id=170865
768
769         Reviewed by Mark Lam and Geoffrey Garen.
770
771         * stress/parse-int-intrinsic-dfg-backend-flush.js: Added.
772         (assert):
773         (foo):
774
775 2017-04-14  Caitlin Potter  <caitp@igalia.com>
776
777         [JSC] use ExpressionErrorClassifier for AwaitExpression operand
778         https://bugs.webkit.org/show_bug.cgi?id=170844
779
780         Reviewed by Saam Barati.
781
782         * stress/regress-170732.js: Added.
783
784 2017-04-14  Oleksandr Skachkov  <gskachkov@gmail.com>
785
786         Safari 10.1 JSON.parse returns incorrect object for numeric keys with decimal values
787         https://bugs.webkit.org/show_bug.cgi?id=170442
788
789         Reviewed by Yusuke Suzuki.
790
791         * stress/object-number-properties.js:
792
793 2017-04-13  Yusuke Suzuki  <utatane.tea@gmail.com>
794
795         [JSC] Date.parse should accept wider range of representation
796         https://bugs.webkit.org/show_bug.cgi?id=170720
797
798         Reviewed by Darin Adler.
799
800         * stress/date-relaxed.js: Added.
801         (shouldBe):
802         (throw.new.Error):
803
804 2017-04-13  Mark Lam  <mark.lam@apple.com>
805
806         Should use flushDirect() when flushing the scopeRegister due to needsScopeRegister().
807         https://bugs.webkit.org/show_bug.cgi?id=170661
808         <rdar://problem/31579046>
809
810         Reviewed by Filip Pizlo.
811
812         * stress/regress-170661.js: Added.
813
814 2017-04-13  JF Bastien  <jfbastien@apple.com>
815
816         WebAssembly: manage memory better
817         https://bugs.webkit.org/show_bug.cgi?id=170628
818
819         Reviewed by Keith Miller, Michael Saboff.
820
821         * wasm/Builder.js: move a helper out so tests can use it
822         (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
823         * wasm/WASM.js: add utilities to classify opcodes
824         (export.opcodes):
825         (export.const.memoryAccessInfo.op.const.sign):
826         * wasm/function-tests/memory-access-past-4gib.js: Added. This test
827         fails before this patch.
828         (const.op.of.WASM.opcodes):
829         * wasm/function-tests/memory-many.js: Added. This simple tests
830         just shouldn't crash. In verbose mode it's useful at determining
831         if the GC falls behind or not.
832         * wasm/function-tests/memory-multiagent.js: Added. Emulate postMessage.
833         (const.startAgents.numAgentsToStart.a.agent.receiveBroadcast):
834         (const.startAgents.numAgentsToStart.a.write.const.idx.Math.random):
835         (const.broadcastToAgents):
836         * wasm/js-api/extension-MemoryMode.js: verbose logging.
837         (testMemoryNoMax):
838         (testMemory):
839         (testInstanceNoMemory):
840         (testInstanceNoMax):
841         (testInstance):
842         * wasm/utilities.js: move a utility here.
843
844 2017-04-12  Joseph Pecoraro  <pecoraro@apple.com>
845
846         test262: test262/test/built-ins/NativeErrors/EvalError/proto.js
847         https://bugs.webkit.org/show_bug.cgi?id=170668
848
849         Reviewed by Keith Miller.
850
851         * ChakraCore.yaml:
852         * ChakraCore/test/Lib/error.baseline-jsc: Added.
853         This test does not match the spec.
854
855         * test262.yaml:
856
857 2017-04-12  Joseph Pecoraro  <pecoraro@apple.com>
858
859         test262: test262/test/language/literals/regexp/u-dec-esc.js
860         https://bugs.webkit.org/show_bug.cgi?id=170687
861
862         Reviewed by Michael Saboff.
863
864         * test262.yaml:
865
866 2017-04-11  Michael Saboff  <msaboff@apple.com>
867
868         Implement Object.isFrozen() and Object.isSealed() per ECMA spec
869         https://bugs.webkit.org/show_bug.cgi?id=170753
870
871         Reviewed by Mark Lam.
872
873         Added JSC baseline and enabled defineIndexProperty test.
874
875         Note that JSC differs from Chakra in that a JSC doesn't use indexed
876         properties placed on the Array prototype when sorting the indexed 
877         properties of an Object.  This is behavior is considered undefined
878         in the standard.
879
880         * ChakraCore.yaml:
881         * ChakraCore/test/es5/defineIndexProperty.baseline-jsc: Added.
882
883 2017-04-11  Joseph Pecoraro  <pecoraro@apple.com>
884
885         test262: test262/test/annexB/language/comments/multi-line-html-close.js
886         https://bugs.webkit.org/show_bug.cgi?id=170648
887
888         Reviewed by Keith Miller.
889
890         * test262.yaml:
891
892 2017-04-11  Joseph Pecoraro  <pecoraro@apple.com>
893
894         test262: test262/test/built-ins/Array/S15.4.3_A2.2.js
895         https://bugs.webkit.org/show_bug.cgi?id=170652
896
897         Reviewed by Michael Saboff.
898
899         * stress/native-constructors-length.js: Added.
900         (assertLengthDescriptorAttributes):
901         Add a quick test for the length properties of all native constructors.
902
903         * ChakraCore/test/es5/enumerable.baseline-jsc:
904         Rebaseline expectations for this test.
905
906         * test262.yaml:
907
908 2017-04-10  Keith Miller  <keith_miller@apple.com>
909
910         WebAssembly: Update spec tests
911         https://bugs.webkit.org/show_bug.cgi?id=170683
912
913         Rubber-stamped by JF Bastien.
914
915         * wasm.yaml:
916         * wasm/spec-tests/br_table.wast.js:
917         * wasm/spec-tests/conversions.wast.js: Removed.
918         * wasm/spec-tests/f32_bitwise.wast.js: Added.
919         * wasm/spec-tests/f32_cmp.wast.js:
920         * wasm/spec-tests/f64_bitwise.wast.js: Added.
921         * wasm/spec-tests/f64_cmp.wast.js:
922         * wasm/spec-tests/i32.wast.js:
923         * wasm/spec-tests/i64.wast.js:
924         * wasm/spec-tests/int_exprs.wast.js:
925         * wasm/spec-tests/memory.wast.js:
926
927 2017-04-09  Joseph Pecoraro  <pecoraro@apple.com>
928
929         test262: test262/test/annexB/language/expressions/object/__proto__-fn-name.js
930         https://bugs.webkit.org/show_bug.cgi?id=170650
931
932         Reviewed by Saam Barati.
933
934         * stress/inferred-names.js:
935         * test262.yaml:
936
937 2017-04-09  Joseph Pecoraro  <pecoraro@apple.com>
938
939         test262: test262/test/annexB/language/literals/regexp/identity-escape.js
940         https://bugs.webkit.org/show_bug.cgi?id=170651
941
942         Reviewed by Saam Barati.
943
944         * test262.yaml:
945
946 2017-04-07  Michael Saboff  <msaboff@apple.com>
947
948         Fix and enable ChakraCore/test/es6/ES6Function_bugs.js after r215072
949         https://bugs.webkit.org/show_bug.cgi?id=170580
950
951         Reviewed by JF Bastien.
952
953         Commented out subtest that expects defineProperty("length") to a getter on a
954         sealed function shouldn't throw.
955
956         * ChakraCore.yaml:
957         * ChakraCore/test/es6/ES6Function_bugs.js:
958
959 2017-04-06  Michael Saboff  <msaboff@apple.com>
960
961         Cannot Object.seal() or Object.freeze() global "this"
962         https://bugs.webkit.org/show_bug.cgi?id=170549
963
964         Reviewed by Mark Lam.
965
966         Enabled failing tests fixed by the corresponding code change:
967             ChakraCore/test/LetConst/delete.js
968             ChakraCore/test/LetConst/dop.js
969             ChakraCore/test/LetConst/dop1.js
970
971         * ChakraCore.yaml:
972         * ChakraCore/test/LetConst/dop.baseline-jsc: Added JSC specific expected output.
973         * ChakraCore/test/LetConst/dop1.baseline-jsc: Added JSC specific expected output.
974
975 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
976
977         test262: ES2017 test progressions need updated expectations (arguments.caller removed)
978         https://bugs.webkit.org/show_bug.cgi?id=170536
979
980         Reviewed by Mark Lam.
981
982         * test262.yaml:
983         After r208867 the tests are out of date and are now expected to fail.
984
985 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
986
987         test262: Final rebaseline of existing tests, a few tests have started failing
988         https://bugs.webkit.org/show_bug.cgi?id=170538
989
990         Reviewed by Mark Lam.
991
992         * test262.yaml:
993         These tests started failing a while ago. Mark them as legitmate failures.
994
995 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
996
997         test262: Rebaseline expectations for now passing tests
998         https://bugs.webkit.org/show_bug.cgi?id=170532
999
1000         Reviewed by Ryosuke Niwa.
1001
1002         * test262.yaml:
1003         Update expectations for tests we are now passing.
1004
1005 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
1006
1007         test262: module test progressions need updated expectations (@@iterator changes)
1008         https://bugs.webkit.org/show_bug.cgi?id=170535
1009
1010         Reviewed by Saam Barati.
1011
1012         * test262.yaml:
1013         After r212430 the tests are out of date and are now expected to fail.
1014
1015 2017-04-05  Michael Saboff  <msaboff@apple.com>
1016
1017         Unreviewed rollout of r214642 as the test still intermittently fails.
1018
1019         Disabled ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js.
1020
1021         * ChakraCore.yaml:
1022
1023 2017-04-05  Michael Saboff  <msaboff@apple.com>
1024
1025         REGRESSION (Safari 10.1): Inserting elements into arrays fails when array contains very large numbers
1026         https://bugs.webkit.org/show_bug.cgi?id=170264
1027         <rdar://problem/31375593>
1028
1029         Rubber-stamped by Saam Barati.
1030
1031         The original bug was fixed in: https://trac.webkit.org/changeset/214714
1032         I'm just adding another test for good measure.
1033
1034         * stress/double-array-to-array-storage.js: Added.
1035         (assert):
1036
1037 2017-04-05  Keith Miller  <keith_miller@apple.com>
1038
1039         WebAssembly: We shouldn't need to pin size registers if we have a fast memory.
1040         https://bugs.webkit.org/show_bug.cgi?id=170504
1041
1042         Reviewed by Mark Lam.
1043
1044         * wasm/function-tests/trap-after-cross-instance-call.js: Added.
1045         (b.new.WebAssembly.Memory):
1046         (importObject.foo.bar):
1047         (wasmFrameCountFromError):
1048
1049 2017-03-16  Yusuke Suzuki  <utatane.tea@gmail.com>
1050
1051         [JSC] Generate TemplateObjects at linking time
1052         https://bugs.webkit.org/show_bug.cgi?id=169743
1053
1054         Reviewed by Keith Miller.
1055
1056         * stress/template-string-tags-eval.js: Added.
1057         (shouldBe):
1058         (tag):
1059
1060 2017-04-04  Mark Lam  <mark.lam@apple.com>
1061
1062         On ARM64, DFG::SpeculativeJIT::compileArithMod() failed to ensure result is of DataFormatInt32.
1063         https://bugs.webkit.org/show_bug.cgi?id=170473
1064         <rdar://problem/29912391>
1065
1066         Reviewed by Saam Barati.
1067
1068         * stress/regress-170473.js: Added.
1069
1070 2017-04-03  Mark Lam  <mark.lam@apple.com>
1071
1072         Fix incorrect capacity delta calculation reported in SparseArrayValueMap::add().
1073         https://bugs.webkit.org/show_bug.cgi?id=170412
1074         <rdar://problem/29697336>
1075
1076         Reviewed by Filip Pizlo.
1077
1078         * stress/regress-170412.js: Added.
1079
1080 2017-04-03  Keith Miller  <keith_miller@apple.com>
1081
1082         WebAssembly: Update spec tests
1083         https://bugs.webkit.org/show_bug.cgi?id=170361
1084
1085         Rubber-stamped by Saam Barati.
1086
1087         Update the spec tests to run tests generated by the newer spec
1088         test builder wasm-spec/test/builder.py. This patch also adds the
1089         necessary harness code in spec-harness.js so we can run the tests.
1090
1091         * wasm.yaml:
1092         * wasm/import-spec-tests.rb:
1093         * wasm/spec-harness.js: Added.
1094         (import.string_appeared_here.then):
1095         (test):
1096         (promise_test):
1097         (let.assert_unreached):
1098         * wasm/spec-harness/index.js: Added.
1099         (let.testNum):
1100         (assertThrows):
1101         (_assert):
1102         (ValueResult):
1103         (ErrorResult):
1104         (Result.prototype.isError):
1105         (binary):
1106         (module):
1107         (uniqueTest):
1108         (assert_invalid):
1109         (assert_soft_invalid):
1110         (register):
1111         (call):
1112         (get instance):
1113         (exports):
1114         (run):
1115         (assert_unlinkable):
1116         (assert_uninstantiable):
1117         (assert_trap):
1118         (try.f):
1119         (catch):
1120         (assert_exhaustion):
1121         (assert_return):
1122         (assert_return_nan):
1123         * wasm/spec-harness/testharness.css: Added.
1124         (html):
1125         (#log .warning,):
1126         (#log .error,):
1127         (section#summary):
1128         (table#results):
1129         (table#results th:first-child,):
1130         (table#results th:last-child,):
1131         (table#results.assertions th:last-child,):
1132         (table#results th):
1133         (table#results td):
1134         (tr.pass > td:first-child):
1135         (tr.fail > td:first-child):
1136         (tr.timeout > td:first-child):
1137         (tr.notrun > td:first-child):
1138         (.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child):
1139         (table#results span):
1140         (table#results span.expected):
1141         (table#results span.actual):
1142         (span.ok):
1143         (tr.error):
1144         (span.timeout):
1145         (span.ok, span.timeout, span.error):
1146         * wasm/spec-harness/testharness.js: Added.
1147         (WindowTestEnvironment):
1148         (WindowTestEnvironment.prototype._dispatch):
1149         (WindowTestEnvironment.prototype._forEach_windows):
1150         (WindowTestEnvironment.prototype.on_tests_ready):
1151         (WindowTestEnvironment.prototype.setup_messages):
1152         (WindowTestEnvironment.prototype.next_default_test_name):
1153         (WindowTestEnvironment.prototype.on_new_harness_properties):
1154         (WindowTestEnvironment.prototype.add_on_loaded_callback):
1155         (WindowTestEnvironment.prototype.test_timeout):
1156         (WindowTestEnvironment.prototype.global_scope):
1157         (WorkerTestEnvironment):
1158         (WorkerTestEnvironment.prototype._dispatch):
1159         (WorkerTestEnvironment.prototype._add_message_port):
1160         (WorkerTestEnvironment.prototype.next_default_test_name):
1161         (WorkerTestEnvironment.prototype.on_new_harness_properties):
1162         (WorkerTestEnvironment.prototype.on_tests_ready):
1163         (WorkerTestEnvironment.prototype.add_on_loaded_callback):
1164         (WorkerTestEnvironment.prototype.test_timeout):
1165         (WorkerTestEnvironment.prototype.global_scope):
1166         (DedicatedWorkerTestEnvironment):
1167         (DedicatedWorkerTestEnvironment.prototype.on_tests_ready):
1168         (SharedWorkerTestEnvironment):
1169         (SharedWorkerTestEnvironment.prototype.on_tests_ready):
1170         (ServiceWorkerTestEnvironment):
1171         (ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback):
1172         (create_test_environment):
1173         (is_shared_worker):
1174         (is_service_worker):
1175         (test):
1176         (async_test):
1177         (promise_test):
1178         (this.wait_for):
1179         (EventWatcher):
1180         (setup):
1181         (done):
1182         (generate_tests):
1183         (step_timeout):
1184         (truncate):
1185         (is_node):
1186         (format_value):
1187         * wasm/spec-harness/testharnessreport.js: Added.
1188         * wasm/spec-harness/wasm-constants.js: Added.
1189         (bytes):
1190         (bytesWithHeader):
1191         (makeSig):
1192         (makeSig_v_x):
1193         (makeSig_v_xx):
1194         (makeSig_r_v):
1195         (makeSig_r_x):
1196         (makeSig_r_xx):
1197         (assertTraps):
1198         (assertWasmThrows):
1199         * wasm/spec-harness/wasm-module-builder.js: Added.
1200         (Binary.prototype.emit_u8):
1201         (Binary.prototype.emit_u16):
1202         (Binary.prototype.emit_u32):
1203         (Binary.prototype.emit_u32v):
1204         (Binary.prototype.emit_bytes):
1205         (Binary.prototype.emit_string):
1206         (Binary.prototype.emit_header):
1207         (Binary.prototype.emit_section):
1208         (Binary):
1209         (WasmFunctionBuilder):
1210         (WasmFunctionBuilder.prototype.exportAs):
1211         (WasmFunctionBuilder.prototype.exportFunc):
1212         (WasmFunctionBuilder.prototype.addBody):
1213         (WasmFunctionBuilder.prototype.addLocals):
1214         (WasmFunctionBuilder.prototype.end):
1215         (WasmGlobalBuilder):
1216         (WasmGlobalBuilder.prototype.exportAs):
1217         (WasmModuleBuilder):
1218         (WasmModuleBuilder.prototype.addStart):
1219         (WasmModuleBuilder.prototype.addMemory):
1220         (WasmModuleBuilder.prototype.addExplicitSection):
1221         (WasmModuleBuilder.prototype.addType):
1222         (WasmModuleBuilder.prototype.addGlobal):
1223         (WasmModuleBuilder.prototype.addFunction):
1224         (WasmModuleBuilder.prototype.addImport):
1225         (WasmModuleBuilder.prototype.addImportedGlobal):
1226         (WasmModuleBuilder.prototype.addImportedMemory):
1227         (WasmModuleBuilder.prototype.addImportedTable):
1228         (WasmModuleBuilder.prototype.addExport):
1229         (WasmModuleBuilder.prototype.addExportOfKind):
1230         (WasmModuleBuilder.prototype.addDataSegment):
1231         (WasmModuleBuilder.prototype.exportMemoryAs):
1232         (WasmModuleBuilder.prototype.addFunctionTableInit):
1233         (WasmModuleBuilder.prototype.appendToTable):
1234         (WasmModuleBuilder.prototype.setFunctionTableLength):
1235         (WasmModuleBuilder.prototype.toArray):
1236         (WasmModuleBuilder.prototype.toBuffer):
1237         (WasmModuleBuilder.prototype.instantiate):
1238         * wasm/spec-harness/wast.js: Added.
1239         (normalize):
1240         (require.else._registry.name):
1241         (require):
1242         (add_hex_char):
1243         (add_char):
1244         (string_with):
1245         (list_of_opt):
1246         (break_bytes.f):
1247         (break_bytes):
1248         (f):
1249         (decls):
1250         (func_type):
1251         (limits):
1252         (global_type):
1253         (testop):
1254         (relop):
1255         (unop):
1256         (binop):
1257         (cvtop):
1258         (oper):
1259         (mem_size):
1260         (extension):
1261         (memop):
1262         (storeop):
1263         (var):
1264         (constop):
1265         (instr.else.switch.case.0.f):
1266         (instr.else.switch.case.1.f.1):
1267         (instr.else.switch.case.2.f.2):
1268         (instr):
1269         (func_with_name):
1270         (func):
1271         (start):
1272         (table):
1273         (memory):
1274         (segment):
1275         (elems):
1276         (data):
1277         (typedef):
1278         (import_kind):
1279         (import):
1280         (export_kind):
1281         (export):
1282         (var_opt):
1283         (is_func_import):
1284         (is_table_import):
1285         (is_memory_import):
1286         (is_global_import):
1287         (f.1):
1288         (f.2):
1289         (f.3):
1290         (module_with_var_opt):
1291         (module_):
1292         (literal):
1293         (definition):
1294         (access):
1295         (action):
1296         (script):
1297         (_registry.string_appeared_here):
1298         (init):
1299         (make_matrix):
1300         (copy):
1301         (append):
1302         (sub):
1303         (fill):
1304         (blit):
1305         (iter):
1306         (map):
1307         (iteri):
1308         (mapi):
1309         (to_list):
1310         (list_length):
1311         (of_list):
1312         (fold_left):
1313         (fold_right):
1314         (maxson):
1315         (trickle):
1316         (bubble):
1317         (trickleup):
1318         (sort):
1319         (merge):
1320         (isortto):
1321         (sortto):
1322         (stable_sort):
1323         (import_type):
1324         (export_type):
1325         (dims.n):
1326         (dims.d.i):
1327         (dims):
1328         (map_file):
1329         (create):
1330         (of_array):
1331         (slice_left):
1332         (slice_right):
1333         (slice_left_1):
1334         (slice_right_1):
1335         (slice_left_2):
1336         (slice_right_2):
1337         (array1_of_genarray):
1338         (array2_of_genarray):
1339         (array3_of_genarray):
1340         (reshape_1):
1341         (reshape_2):
1342         (reshape_3):
1343         (reshape):
1344         (__):
1345         (contents):
1346         (to_bytes):
1347         (nth):
1348         (length):
1349         (clear):
1350         (reset):
1351         (resize):
1352         (add_substring):
1353         (add_subbytes):
1354         (add_string):
1355         (add_bytes):
1356         (add_buffer):
1357         (add_channel):
1358         (output_buffer):
1359         (closing):
1360         (advance_to_closing):
1361         (advance_to_non_alpha):
1362         (find_ident):
1363         (add_substitute):
1364         (make):
1365         (to_string):
1366         (of_string):
1367         (sub_string):
1368         (extend):
1369         (blit_string):
1370         (concat):
1371         (cat):
1372         (is_space):
1373         (trim):
1374         (escaped):
1375         (uppercase):
1376         (lowercase):
1377         (apply1):
1378         (capitalize):
1379         (uncapitalize):
1380         (index_rec):
1381         (index):
1382         (index_from):
1383         (rindex_rec):
1384         (rindex):
1385         (rindex_from):
1386         (contains_from):
1387         (contains):
1388         (rcontains_from):
1389         (caml_array_sub):
1390         (len):
1391         (caml_array_concat):
1392         (caml_make_vect):
1393         (caml_array_blit):
1394         (get if):
1395         (caml_set_oo_id):
1396         (get_id):
1397         (caml_int32_float_of_bits):
1398         (caml_int32_bits_of_float):
1399         (caml_classify_float):
1400         (caml_modf_float):
1401         (caml_ldexp_float):
1402         (caml_frexp_float):
1403         (caml_copysign_float):
1404         (caml_expm1_float):
1405         (caml_hypot_float):
1406         (caml_log10_float):
1407         (caml_failwith):
1408         (parse_digit):
1409         (int_of_string_base):
1410         (parse_sign_and_base):
1411         (caml_int_of_string.aux):
1412         (caml_int_of_string):
1413         (caml_int64_of_string.aux):
1414         (caml_int64_of_string):
1415         (int_of_base):
1416         (parse_format):
1417         (finish_formatting):
1418         (caml_format_int):
1419         (caml_int64_format):
1420         (caml_format_float):
1421         (float_of_string):
1422         (div):
1423         (mod_):
1424         (caml_bswap16):
1425         (caml_int32_bswap):
1426         (imul):
1427         (neg_signed):
1428         (not):
1429         (eq):
1430         (neg):
1431         (lsl_):
1432         (lsr_):
1433         (asr_):
1434         (is_zero):
1435         (mul):
1436         (swap):
1437         (xor):
1438         (or_):
1439         (and_):
1440         (ge):
1441         (lt):
1442         (gt):
1443         (le):
1444         (to_float):
1445         (of_float):
1446         (div_mod):
1447         (compare):
1448         (of_int32):
1449         (to_int32):
1450         (to_hex.aux):
1451         (to_hex):
1452         (discard_sign):
1453         (float_of_bits):
1454         (bits_of_float.to_nat):
1455         (bits_of_float):
1456         (get64):
1457         (erase_rel):
1458         (concat_fmtty):
1459         (concat_fmt):
1460         (create_char_set):
1461         (add_in_char_set):
1462         (rev_char_set):
1463         (is_in_char_set):
1464         (prec_of_prec_opt):
1465         (param_format_of_ignored_format):
1466         (buffer_check_size):
1467         (buffer_add_char):
1468         (buffer_add_string):
1469         (buffer_contents):
1470         (char_of_iconv):
1471         (char_of_fconv):
1472         (char_of_counter):
1473         (print_char):
1474         (set while.set var):
1475         (set while.set else):
1476         (set var):
1477         (set else):
1478         (set print_char):
1479         (set if):
1480         (bprint_padty):
1481         (bprint_ignored_flag):
1482         (bprint_pad_opt):
1483         (bprint_padding):
1484         (bprint_precision):
1485         (bprint_iconv_flag):
1486         (bprint_int_fmt):
1487         (bprint_altint_fmt):
1488         (bprint_fconv_flag):
1489         (bprint_float_fmt):
1490         (string_of_formatting_lit):
1491         (string_of_formatting_gen):
1492         (bprint_char_literal):
1493         (bprint_string_literal):
1494         (bprint_fmtty):
1495         (int_of_custom_arity):
1496         (bprint_fmt):
1497         (string_of_fmt):
1498         (symm):
1499         (fmtty_rel_det):
1500         (trans):
1501         (fmtty_of_formatting_gen):
1502         (fmtty_of_fmt):
1503         (fmtty_of_custom):
1504         (fmtty_of_padding_fmtty):
1505         (fmtty_of_precision_fmtty):
1506         (type_padding):
1507         (type_padprec):
1508         (type_ignored_param_one):
1509         (type_format_gen):
1510         (type_ignored_format_substitution):
1511         (type_format):
1512         (recast):
1513         (fix_padding):
1514         (fix_int_precision):
1515         (string_to_caml_string):
1516         (format_of_iconv):
1517         (format_of_aconv):
1518         (format_of_fconv):
1519         (convert_int):
1520         (convert_int32):
1521         (convert_nativeint):
1522         (convert_int64):
1523         (else.is_valid):
1524         (convert_float):
1525         (format_caml_char):
1526         (string_of_fmtty):
1527         (else.switch.):
1528         (else.switch.k.prime):
1529         (else.switch.else.):
1530         (else.switch.else.k.prime.1):
1531         (make_printf):
1532         (make_from_fmtty):
1533         (make_invalid_arg):
1534         (make_string_padding):
1535         (make_int_padding_precision):
1536         (make_custom):
1537         (output_acc):
1538         (bufput_acc):
1539         (strput_acc):
1540         (failwith_message.k):
1541         (failwith_message):
1542         (open_box_of_string.else.invalid_box):
1543         (open_box_of_string.else.parse_spaces):
1544         (open_box_of_string.else.parse_lword):
1545         (open_box_of_string.else.parse_int):
1546         (open_box_of_string):
1547         (make_padding_fmt_ebb):
1548         (make_precision_fmt_ebb):
1549         (make_padprec_fmt_ebb):
1550         (invalid_format_message):
1551         (invalid_format_without):
1552         (expected_character):
1553         (compute_int_conv):
1554         (incompatible_flag):
1555         (parse_positive):
1556         (parse_conv):
1557         (parse_after_precision):
1558         (else.parse_literal):
1559         (parse_after_padding):
1560         (parse_literal):
1561         (parse_after_at):
1562         (add_literal):
1563         (parse_spaces):
1564         (parse_integer):
1565         (compute_float_conv):
1566         (search_subformat_end):
1567         (check_no_0):
1568         (opt_of_pad):
1569         (get_prec_opt):
1570         (else.switch.case.99.char_format):
1571         (else.switch.scan_format):
1572         (parse_conversion):
1573         (set_flag):
1574         (parse_flags):
1575         (is_int_base):
1576         (counter_of_char):
1577         (add_range):
1578         (fail_single_percent):
1579         (parse_char_set_after_char):
1580         (parse_char_set_content):
1581         (parse_char_set_start):
1582         (parse_char_set):
1583         (check_open_box):
1584         (parse_tag):
1585         (fmt_ebb_of_string):
1586         (format_of_string_fmtty):
1587         (format_of_string_format):
1588         (caret):
1589         (caml_ml_open_descriptor_in):
1590         (caml_ml_open_descriptor_out):
1591         (caml_ml_flush):
1592         (node_std_output):
1593         (caml_ml_output_char):
1594         (caml_ml_input):
1595         (caml_ml_input_char):
1596         (caml_ml_out_channels_list):
1597         (fail):
1598         (caml_lex_array):
1599         (caml_lex_engine):
1600         (caml_lex_run_mem):
1601         (caml_lex_run_tag):
1602         (caml_new_lex_engine):
1603         (caml_obj_dup):
1604         (caml_obj_truncate):
1605         (caml_lazy_make_forward):
1606         (caml_update_dummy):
1607         (caml_int_compare):
1608         (caml_compare):
1609         (caml_equal):
1610         (caml_notequal):
1611         (caml_greaterequal):
1612         (caml_lessequal):
1613         (else.aux):
1614         (caml_get_public_method):
1615         (caml_parse_engine):
1616         (caml_set_parser_trace):
1617         (js_string_of_char):
1618         (caml_string_get):
1619         (caml_create_string):
1620         (caml_string_compare):
1621         (caml_fill_string):
1622         (caml_blit_string):
1623         (caml_blit_bytes):
1624         (bytes_of_string):
1625         (bytes_to_string):
1626         (caml_string_of_char_array):
1627         (caml_is_printable):
1628         (caml_string_get16):
1629         (caml_string_get32):
1630         (repeat):
1631         (chr):
1632         (app):
1633         (js):
1634         (curry_1):
1635         (_1):
1636         (js1):
1637         (__1):
1638         (curry_2):
1639         (_2):
1640         (js2):
1641         (__2):
1642         (curry_3):
1643         (_3):
1644         (js3):
1645         (__3):
1646         (curry_4):
1647         (_4):
1648         (js4):
1649         (__4):
1650         (curry_5):
1651         (_5):
1652         (js5):
1653         (__5):
1654         (curry_6):
1655         (_6):
1656         (js6):
1657         (__6):
1658         (curry_7):
1659         (_7):
1660         (js7):
1661         (__7):
1662         (curry_8):
1663         (_8):
1664         (js8):
1665         (__8):
1666         (stream):
1667         (eos):
1668         (skip):
1669         (read):
1670         (peek):
1671         (string_of_byte):
1672         (position):
1673         (region):
1674         (error):
1675         (guard):
1676         (get 1):
1677         (get expect):
1678         (get illegal):
1679         (at):
1680         (u32):
1681         (u64):
1682         (get require):
1683         (vuN):
1684         (get var):
1685         (vsN):
1686         (vu32):
1687         (vs32):
1688         (vs64):
1689         (f32):
1690         (f64):
1691         (len32):
1692         (string):
1693         (opt):
1694         (vec):
1695         (sized):
1696         (value_type):
1697         (elem_type):
1698         (stack_type):
1699         (table_type):
1700         (memory_type):
1701         (mutability.get if):
1702         (mutability):
1703         (instr.get if):
1704         (instr_block):
1705         (const):
1706         (id):
1707         (section):
1708         (type_section):
1709         (import_kind.get if):
1710         (import_section):
1711         (func_section):
1712         (table_section):
1713         (memory_section):
1714         (global):
1715         (global_section):
1716         (export_kind.get if):
1717         (export_section):
1718         (start_section):
1719         (local):
1720         (code):
1721         (code_section):
1722         (table_segment):
1723         (elem_section):
1724         (memory_segment):
1725         (data_section):
1726         (partial_arg.1):
1727         (custom):
1728         (custom_section):
1729         (iterate):
1730         (decode):
1731         (patch):
1732         (encode.u8):
1733         (encode.u16):
1734         (encode.u32):
1735         (encode.vu64):
1736         (encode.vs64):
1737         (encode.vu32):
1738         (encode.len):
1739         (encode.bool):
1740         (encode.string):
1741         (encode.vec):
1742         (encode.gap32):
1743         (encode.patch_gap32):
1744         (encode.value_type):
1745         (encode.stack_type):
1746         (encode.func_type):
1747         (encode.limits):
1748         (encode.table_type):
1749         (encode.memory_type):
1750         (encode.global_type):
1751         (encode.memop):
1752         (encode):
1753         (encode.instr):
1754         (encode.const):
1755         (encode.section):
1756         (encode.type_section):
1757         (encode.import):
1758         (encode.import_section):
1759         (encode.func):
1760         (encode.func_section):
1761         (encode.table):
1762         (encode.table_section):
1763         (encode.memory):
1764         (encode.memory_section):
1765         (encode.global):
1766         (encode.global_section):
1767         (encode.export_kind):
1768         (encode.export):
1769         (encode.export_section):
1770         (encode.start_section):
1771         (encode.combine):
1772         (encode.compress):
1773         (encode.local):
1774         (encode.code):
1775         (encode.code_section):
1776         (encode.segment):
1777         (encode.table_segment):
1778         (encode.elem_section):
1779         (encode.memory_segment):
1780         (encode.module_):
1781         (Make.warn):
1782         (Make.error):
1783         (Make):
1784         (print_nan_significand_digits):
1785         (Make.of_bits):
1786         (Make.to_bits):
1787         (Make.is_nan):
1788         (Make.canonicalize_nan):
1789         (Make.determine_binary_nan):
1790         (Make.determine_unary_nan):
1791         (Make.binary):
1792         (Make.unary):
1793         (Make.add):
1794         (Make.sub):
1795         (Make.mul):
1796         (Make.div):
1797         (Make.sqrt):
1798         (Make.ceil):
1799         (Make.floor):
1800         (Make.trunc):
1801         (Make.nearest):
1802         (Make.min):
1803         (Make.max):
1804         (Make.abs):
1805         (Make.neg):
1806         (Make.copysign):
1807         (Make.eq):
1808         (Make.ne):
1809         (Make.lt):
1810         (Make.gt):
1811         (Make.le):
1812         (Make.ge):
1813         (Make.of_signless_string):
1814         (Make.of_string):
1815         (Make.to_string):
1816         (add_queue):
1817         (peek_queue):
1818         (take_queue):
1819         (pp_enqueue):
1820         (pp_clear_queue):
1821         (pp_output_string):
1822         (break_new_line):
1823         (break_same_line):
1824         (pp_force_break_line):
1825         (switch.add_tab):
1826         (else.switch.find):
1827         (format_pp_token):
1828         (advance_left):
1829         (enqueue_advance):
1830         (enqueue_string_as):
1831         (set_size):
1832         (scan_push):
1833         (pp_open_box_gen):
1834         (pp_close_box):
1835         (pp_open_tag):
1836         (pp_close_tag):
1837         (pp_set_print_tags):
1838         (pp_set_mark_tags):
1839         (pp_get_print_tags):
1840         (pp_get_mark_tags):
1841         (pp_set_tags):
1842         (pp_get_formatter_tag_functions):
1843         (pp_set_formatter_tag_functions):
1844         (pp_rinit):
1845         (pp_flush_queue):
1846         (pp_print_as_size):
1847         (pp_print_string):
1848         (pp_print_int):
1849         (pp_print_float):
1850         (pp_print_bool):
1851         (pp_open_hbox):
1852         (pp_open_vbox):
1853         (pp_open_hvbox):
1854         (pp_open_hovbox):
1855         (pp_open_box):
1856         (pp_print_newline):
1857         (pp_print_flush):
1858         (pp_force_newline):
1859         (pp_print_if_newline):
1860         (pp_print_break):
1861         (pp_print_space):
1862         (pp_print_cut):
1863         (pp_open_tbox):
1864         (pp_close_tbox):
1865         (pp_print_tbreak):
1866         (pp_print_tab):
1867         (pp_set_tab):
1868         (pp_print_list):
1869         (flush):
1870         (pp_print_text):
1871         (pp_set_max_boxes):
1872         (pp_get_max_boxes):
1873         (pp_over_max_boxes):
1874         (pp_get_ellipsis_text):
1875         (pp_limit):
1876         (pp_set_max_indent):
1877         (pp_get_max_indent):
1878         (pp_set_margin):
1879         (pp_get_margin):
1880         (pp_set_formatter_out_functions):
1881         (pp_get_formatter_out_functions):
1882         (pp_set_formatter_output_functions):
1883         (pp_get_formatter_output_functions):
1884         (pp_set_all_formatter_output_functions):
1885         (pp_get_all_formatter_output_functions):
1886         (display_newline):
1887         (display_blanks):
1888         (state.16):
1889         (state.17):
1890         (state.18):
1891         (state.19):
1892         (pp_set_formatter_out_channel):
1893         (default_pp_mark_open_tag):
1894         (default_pp_mark_close_tag):
1895         (default_pp_print_open_tag):
1896         (default_pp_print_close_tag):
1897         (pp_make_formatter):
1898         (ppf.18):
1899         (ppf.19):
1900         (make_formatter):
1901         (formatter_of_out_channel):
1902         (formatter_of_buffer):
1903         (flush_str_formatter):
1904         (flush_buf_formatter):
1905         (open_hbox):
1906         (open_vbox):
1907         (open_hvbox):
1908         (open_hovbox):
1909         (open_box):
1910         (close_box):
1911         (open_tag):
1912         (close_tag):
1913         (print_as):
1914         (print_string):
1915         (print_int):
1916         (print_float):
1917         (print_bool):
1918         (print_cut):
1919         (print_space):
1920         (force_newline):
1921         (print_flush):
1922         (print_newline):
1923         (print_if_newline):
1924         (open_tbox):
1925         (close_tbox):
1926         (print_tbreak):
1927         (set_tab):
1928         (print_tab):
1929         (set_margin):
1930         (get_margin):
1931         (set_max_indent):
1932         (get_max_indent):
1933         (set_max_boxes):
1934         (get_max_boxes):
1935         (over_max_boxes):
1936         (set_ellipsis_text):
1937         (get_ellipsis_text):
1938         (set_formatter_out_channel):
1939         (set_formatter_out_functions):
1940         (get_formatter_out_functions):
1941         (set_formatter_output_functions):
1942         (get_formatter_output_functions):
1943         (set_all_formatter_output_functions):
1944         (get_all_formatter_output_functions):
1945         (set_formatter_tag_functions):
1946         (get_formatter_tag_functions):
1947         (set_print_tags):
1948         (get_print_tags):
1949         (set_mark_tags):
1950         (get_mark_tags):
1951         (set_tags):
1952         (compute_tag):
1953         (output_formatting_lit):
1954         (kfprintf):
1955         (ikfprintf):
1956         (fprintf):
1957         (ifprintf):
1958         (printf):
1959         (eprintf):
1960         (k.prime):
1961         (ksprintf):
1962         (sprintf):
1963         (asprintf.k.prime):
1964         (asprintf):
1965         (k):
1966         (bprintf):
1967         (succ):
1968         (pred):
1969         (abs):
1970         (lognot):
1971         (Make.cmp_u):
1972         (Make.divrem_u):
1973         (Make.div_s):
1974         (Make.div_u):
1975         (Make.rem_s):
1976         (Make.rem_u):
1977         (Make.shift):
1978         (Make.shl):
1979         (Make.shr_s):
1980         (Make.shr_u):
1981         (Make.clamp_rotate_count):
1982         (Make.rotl):
1983         (Make.rotr):
1984         (Make.loop):
1985         (Make.clz):
1986         (Make.ctz):
1987         (Make.popcnt):
1988         (Make.eqz):
1989         (Make.lt_u):
1990         (Make.le_u):
1991         (Make.gt_u):
1992         (Make.ge_u):
1993         (Make.of_int_u):
1994         (Make.to_string_u):
1995         (Make.require):
1996         (Make.dec_digit):
1997         (Make.hex_digit):
1998         (Make.parse_int):
1999         (Make.of_string_s):
2000         (Make.of_string_u):
2001         (convert_pos):
2002         (error_nest):
2003         (text):
2004         (intop):
2005         (floatop):
2006         (numop):
2007         (memsz):
2008         (ext):
2009         (token.else.switch):
2010         (token.else.switch.):
2011         (token):
2012         (__ocaml_lex_comment_rec):
2013         (engine):
2014         (new_engine):
2015         (from_function):
2016         (from_channel):
2017         (from_string):
2018         (lexeme):
2019         (sub_lexeme):
2020         (sub_lexeme_opt):
2021         (sub_lexeme_char):
2022         (sub_lexeme_char_opt):
2023         (lexeme_char):
2024         (lexeme_start):
2025         (lexeme_end):
2026         (lexeme_start_p):
2027         (lexeme_end_p):
2028         (new_line):
2029         (flush_input):
2030         (take):
2031         (drop):
2032         (last):
2033         (split_last):
2034         (index_of):
2035         (index_of_int32):
2036         (dim):
2037         (set 1):
2038         (get 2):
2039         (log2):
2040         (is_power_of_two):
2041         (loop):
2042         (breakup):
2043         (hd):
2044         (tl):
2045         (rev_append):
2046         (rev):
2047         (flatten):
2048         (rev_map):
2049         (map2):
2050         (rev_map2):
2051         (iter2):
2052         (fold_left2):
2053         (fold_right2):
2054         (for_all):
2055         (exists):
2056         (for_all2):
2057         (exists2):
2058         (mem):
2059         (memq):
2060         (assoc):
2061         (assq):
2062         (mem_assoc):
2063         (mem_assq):
2064         (remove_assoc):
2065         (remove_assq):
2066         (find):
2067         (find_all):
2068         (partition):
2069         (split):
2070         (combine):
2071         (chop):
2072         (rev_sort):
2073         (sort_uniq):
2074         (Make.height):
2075         (Make.create):
2076         (Make.singleton):
2077         (Make.bal):
2078         (Make.is_empty):
2079         (Make.find):
2080         (Make.mem):
2081         (Make.min_binding):
2082         (Make.max_binding):
2083         (Make.remove_min_binding):
2084         (Make.remove):
2085         (Make.iter):
2086         (Make.map):
2087         (Make.mapi):
2088         (Make.fold):
2089         (Make.for_all):
2090         (Make.exists):
2091         (Make.add_min_binding):
2092         (Make.add_max_binding):
2093         (Make.join):
2094         (Make.concat):
2095         (Make.concat_or_join):
2096         (Make.split):
2097         (Make.merge):
2098         (Make.filter):
2099         (Make.partition):
2100         (Make.cons_enum):
2101         (Make.compare):
2102         (Make.equal):
2103         (Make.cardinal):
2104         (Make.bindings_aux):
2105         (Make.bindings):
2106         (double_field):
2107         (set_double_field):
2108         (marshal):
2109         (unmarshal):
2110         (extension_slot):
2111         (extension_name):
2112         (extension_id):
2113         (i32_const):
2114         (i64_const):
2115         (f32_const):
2116         (f64_const):
2117         (block):
2118         (br):
2119         (br_if):
2120         (br_table):
2121         (if_):
2122         (call):
2123         (call_indirect):
2124         (get_local):
2125         (set_local):
2126         (tee_local):
2127         (get_global):
2128         (set_global):
2129         (i32_load):
2130         (i64_load):
2131         (f32_load):
2132         (f64_load):
2133         (i32_load8_s):
2134         (i32_load8_u):
2135         (i32_load16_s):
2136         (i32_load16_u):
2137         (i64_load8_s):
2138         (i64_load8_u):
2139         (i64_load16_s):
2140         (i64_load16_u):
2141         (i64_load32_s):
2142         (i64_load32_u):
2143         (i32_store):
2144         (i64_store):
2145         (f32_store):
2146         (f64_store):
2147         (i32_store8):
2148         (i32_store16):
2149         (i64_store8):
2150         (i64_store16):
2151         (i64_store32):
2152         (parse):
2153         (string_to):
2154         (string_to_script):
2155         (string_to_module):
2156         (parse_error):
2157         (position_to_pos):
2158         (positions_to_region):
2159         (ati):
2160         (nat):
2161         (nat32):
2162         (empty_context):
2163         (enter_func):
2164         (type_):
2165         (lookup):
2166         (label):
2167         (anon_type):
2168         (bind):
2169         (bind_func):
2170         (bind_local):
2171         (bind_global):
2172         (bind_table):
2173         (bind_memory):
2174         (anon):
2175         (anon_func):
2176         (anon_locals):
2177         (anon_global):
2178         (anon_table):
2179         (anon_memory):
2180         (anon_label):
2181         (explicit_sig):
2182         (inline_type):
2183         (yyact):
2184         (script1):
2185         (module1):
2186         (grow_stacks):
2187         (clear_parser):
2188         (current_lookahead_fun):
2189         (catch.else.current_lookahead_fun.0):
2190         (yyparse):
2191         (peek_val):
2192         (symbol_start_pos):
2193         (symbol_end_pos):
2194         (rhs_start_pos):
2195         (rhs_end_pos):
2196         (symbol_start):
2197         (symbol_end):
2198         (rhs_start):
2199         (rhs_end):
2200         (is_current_lookahead):
2201         (failwith):
2202         (invalid_arg):
2203         (min):
2204         (max):
2205         (lnot):
2206         (char_of_int):
2207         (string_of_bool):
2208         (bool_of_string):
2209         (string_of_int):
2210         (valid_float_lexem):
2211         (string_of_float):
2212         (open_out_gen):
2213         (open_out):
2214         (open_out_bin):
2215         (flush_all):
2216         (output_bytes):
2217         (output_string):
2218         (output):
2219         (output_substring):
2220         (output_value):
2221         (close_out):
2222         (close_out_noerr):
2223         (open_in_gen):
2224         (open_in):
2225         (open_in_bin):
2226         (input):
2227         (else.r):
2228         (unsafe_really_input):
2229         (really_input):
2230         (really_input_string):
2231         (input_line.build_result):
2232         (input_line.n):
2233         (input_line.scan):
2234         (input_line):
2235         (close_in_noerr):
2236         (print_bytes):
2237         (print_endline):
2238         (prerr_char):
2239         (prerr_string):
2240         (prerr_bytes):
2241         (prerr_int):
2242         (prerr_float):
2243         (prerr_endline):
2244         (prerr_newline):
2245         (read_line):
2246         (read_int):
2247         (read_float):
2248         (string_of_format):
2249         (at_exit.exit_function.0):
2250         (at_exit):
2251         (do_at_exit):
2252         (exit):
2253         (output_binary_int):
2254         (seek_out):
2255         (pos_out):
2256         (out_channel_length):
2257         (set_binary_mode_out):
2258         (input_binary_int):
2259         (input_value):
2260         (seek_in):
2261         (pos_in):
2262         (in_channel_length):
2263         (close_in):
2264         (set_binary_mode_in):
2265         (LargeFile_000):
2266         (LargeFile_001):
2267         (LargeFile_002):
2268         (LargeFile_003):
2269         (LargeFile_004):
2270         (LargeFile_005):
2271         (kbprintf):
2272         (plus):
2273         (pp):
2274         (print):
2275         (string_of_pos):
2276         (string_of_region):
2277         (escaped.needs_escape):
2278         (set_signal):
2279         (catch_break):
2280         (size):
2281         (string_of_value_type):
2282         (string_of_value_types):
2283         (string_of_elem_type):
2284         (string_of_limits):
2285         (string_of_table_type):
2286         (string_of_global_type):
2287         (string_of_stack_type):
2288         (string_of_func_type):
2289         (type_of):
2290         (default_value):
2291         (value_of_bool):
2292         (string_of_values):
2293         (to_value):
2294         (of_value):
2295         (g):
2296         (binary):
2297         (bytes):
2298         * wasm/spec-tests/address.wast.js:
2299         (register): Deleted.
2300         (module): Deleted.
2301         (instance): Deleted.
2302         (assert_malformed): Deleted.
2303         (assert_invalid): Deleted.
2304         (assert_soft_invalid): Deleted.
2305         (assert_unlinkable): Deleted.
2306         (assert_uninstantiable): Deleted.
2307         (assert_trap): Deleted.
2308         (assert_return): Deleted.
2309         (assert_return_nan): Deleted.
2310         * wasm/spec-tests/binary.wast.js:
2311         (register): Deleted.
2312         (module): Deleted.
2313         (instance): Deleted.
2314         (assert_malformed): Deleted.
2315         (assert_invalid): Deleted.
2316         (assert_soft_invalid): Deleted.
2317         (assert_unlinkable): Deleted.
2318         (assert_uninstantiable): Deleted.
2319         (assert_trap): Deleted.
2320         (assert_return): Deleted.
2321         (assert_return_nan): Deleted.
2322         * wasm/spec-tests/block.wast.js:
2323         (register): Deleted.
2324         (module): Deleted.
2325         (instance): Deleted.
2326         (assert_malformed): Deleted.
2327         (assert_invalid): Deleted.
2328         (assert_soft_invalid): Deleted.
2329         (assert_unlinkable): Deleted.
2330         (assert_uninstantiable): Deleted.
2331         (assert_trap): Deleted.
2332         (assert_return): Deleted.
2333         (assert_return_nan): Deleted.
2334         * wasm/spec-tests/br.wast.js:
2335         (register): Deleted.
2336         (module): Deleted.
2337         (instance): Deleted.
2338         (assert_malformed): Deleted.
2339         (assert_invalid): Deleted.
2340         (assert_soft_invalid): Deleted.
2341         (assert_unlinkable): Deleted.
2342         (assert_uninstantiable): Deleted.
2343         (assert_trap): Deleted.
2344         (assert_return): Deleted.
2345         (assert_return_nan): Deleted.
2346         * wasm/spec-tests/br_if.wast.js:
2347         (register): Deleted.
2348         (module): Deleted.
2349         (instance): Deleted.
2350         (assert_malformed): Deleted.
2351         (assert_invalid): Deleted.
2352         (assert_soft_invalid): Deleted.
2353         (assert_unlinkable): Deleted.
2354         (assert_uninstantiable): Deleted.
2355         (assert_trap): Deleted.
2356         (assert_return): Deleted.
2357         (assert_return_nan): Deleted.
2358         * wasm/spec-tests/br_table.wast.js:
2359         (register): Deleted.
2360         (module): Deleted.
2361         (instance): Deleted.
2362         (assert_malformed): Deleted.
2363         (assert_invalid): Deleted.
2364         (assert_soft_invalid): Deleted.
2365         (assert_unlinkable): Deleted.
2366         (assert_uninstantiable): Deleted.
2367         (assert_trap): Deleted.
2368         (assert_return): Deleted.
2369         (assert_return_nan): Deleted.
2370         * wasm/spec-tests/break-drop.wast.js:
2371         (register): Deleted.
2372         (module): Deleted.
2373         (instance): Deleted.
2374         (assert_malformed): Deleted.
2375         (assert_invalid): Deleted.
2376         (assert_soft_invalid): Deleted.
2377         (assert_unlinkable): Deleted.
2378         (assert_uninstantiable): Deleted.
2379         (assert_trap): Deleted.
2380         (assert_return): Deleted.
2381         (assert_return_nan): Deleted.
2382         * wasm/spec-tests/call.wast.js:
2383         (register): Deleted.
2384         (module): Deleted.
2385         (instance): Deleted.
2386         (assert_malformed): Deleted.
2387         (assert_invalid): Deleted.
2388         (assert_soft_invalid): Deleted.
2389         (assert_unlinkable): Deleted.
2390         (assert_uninstantiable): Deleted.
2391         (assert_trap): Deleted.
2392         (assert_return): Deleted.
2393         (assert_return_nan): Deleted.
2394         * wasm/spec-tests/call_indirect.wast.js:
2395         (register): Deleted.
2396         (module): Deleted.
2397         (instance): Deleted.
2398         (assert_malformed): Deleted.
2399         (assert_invalid): Deleted.
2400         (assert_soft_invalid): Deleted.
2401         (assert_unlinkable): Deleted.
2402         (assert_uninstantiable): Deleted.
2403         (assert_trap): Deleted.
2404         (assert_return): Deleted.
2405         (assert_return_nan): Deleted.
2406         * wasm/spec-tests/comments.wast.js:
2407         (register): Deleted.
2408         (module): Deleted.
2409         (instance): Deleted.
2410         (assert_malformed): Deleted.
2411         (assert_invalid): Deleted.
2412         (assert_soft_invalid): Deleted.
2413         (assert_unlinkable): Deleted.
2414         (assert_uninstantiable): Deleted.
2415         (assert_trap): Deleted.
2416         (assert_return): Deleted.
2417         (assert_return_nan): Deleted.
2418         * wasm/spec-tests/conversions.wast.js:
2419         (register): Deleted.
2420         (module): Deleted.
2421         (instance): Deleted.
2422         (assert_malformed): Deleted.
2423         (assert_invalid): Deleted.
2424         (assert_soft_invalid): Deleted.
2425         (assert_unlinkable): Deleted.
2426         (assert_uninstantiable): Deleted.
2427         (assert_trap): Deleted.
2428         (assert_return): Deleted.
2429         (assert_return_nan): Deleted.
2430         * wasm/spec-tests/custom_section.wast.js:
2431         (register): Deleted.
2432         (module): Deleted.
2433         (instance): Deleted.
2434         (assert_malformed): Deleted.
2435         (assert_invalid): Deleted.
2436         (assert_soft_invalid): Deleted.
2437         (assert_unlinkable): Deleted.
2438         (assert_uninstantiable): Deleted.
2439         (assert_trap): Deleted.
2440         (assert_return): Deleted.
2441         (assert_return_nan): Deleted.
2442         * wasm/spec-tests/endianness.wast.js:
2443         (register): Deleted.
2444         (module): Deleted.
2445         (instance): Deleted.
2446         (assert_malformed): Deleted.
2447         (assert_invalid): Deleted.
2448         (assert_soft_invalid): Deleted.
2449         (assert_unlinkable): Deleted.
2450         (assert_uninstantiable): Deleted.
2451         (assert_trap): Deleted.
2452         (assert_return): Deleted.
2453         (assert_return_nan): Deleted.
2454         * wasm/spec-tests/exports.wast.js:
2455         (register): Deleted.
2456         (module): Deleted.
2457         (instance): Deleted.
2458         (assert_malformed): Deleted.
2459         (assert_invalid): Deleted.
2460         (assert_soft_invalid): Deleted.
2461         (assert_unlinkable): Deleted.
2462         (assert_uninstantiable): Deleted.
2463         (assert_trap): Deleted.
2464         (assert_return): Deleted.
2465         (assert_return_nan): Deleted.
2466         * wasm/spec-tests/f32.wast.js: Removed.
2467         * wasm/spec-tests/f32_cmp.wast.js:
2468         (register): Deleted.
2469         (module): Deleted.
2470         (instance): Deleted.
2471         (assert_malformed): Deleted.
2472         (assert_invalid): Deleted.
2473         (assert_soft_invalid): Deleted.
2474         (assert_unlinkable): Deleted.
2475         (assert_uninstantiable): Deleted.
2476         (assert_trap): Deleted.
2477         (assert_return): Deleted.
2478         (assert_return_nan): Deleted.
2479         * wasm/spec-tests/f64.wast.js: Removed.
2480         * wasm/spec-tests/f64_cmp.wast.js:
2481         (register): Deleted.
2482         (module): Deleted.
2483         (instance): Deleted.
2484         (assert_malformed): Deleted.
2485         (assert_invalid): Deleted.
2486         (assert_soft_invalid): Deleted.
2487         (assert_unlinkable): Deleted.
2488         (assert_uninstantiable): Deleted.
2489         (assert_trap): Deleted.
2490         (assert_return): Deleted.
2491         (assert_return_nan): Deleted.
2492         * wasm/spec-tests/fac.wast.js:
2493         (register): Deleted.
2494         (module): Deleted.
2495         (instance): Deleted.
2496         (assert_malformed): Deleted.
2497         (assert_invalid): Deleted.
2498         (assert_soft_invalid): Deleted.
2499         (assert_unlinkable): Deleted.
2500         (assert_uninstantiable): Deleted.
2501         (assert_trap): Deleted.
2502         (assert_return): Deleted.
2503         (assert_return_nan): Deleted.
2504         * wasm/spec-tests/float_exprs.wast.js: Removed.
2505         * wasm/spec-tests/float_literals.wast.js:
2506         (register): Deleted.
2507         (module): Deleted.
2508         (instance): Deleted.
2509         (assert_malformed): Deleted.
2510         (assert_invalid): Deleted.
2511         (assert_soft_invalid): Deleted.
2512         (assert_unlinkable): Deleted.
2513         (assert_uninstantiable): Deleted.
2514         (assert_trap): Deleted.
2515         (assert_return): Deleted.
2516         (assert_return_nan): Deleted.
2517         * wasm/spec-tests/float_memory.wast.js:
2518         (register): Deleted.
2519         (module): Deleted.
2520         (instance): Deleted.
2521         (assert_malformed): Deleted.
2522         (assert_invalid): Deleted.
2523         (assert_soft_invalid): Deleted.
2524         (assert_unlinkable): Deleted.
2525         (assert_uninstantiable): Deleted.
2526         (assert_trap): Deleted.
2527         (assert_return): Deleted.
2528         (assert_return_nan): Deleted.
2529         * wasm/spec-tests/float_misc.wast.js: Removed.
2530         * wasm/spec-tests/forward.wast.js:
2531         (register): Deleted.
2532         (module): Deleted.
2533         (instance): Deleted.
2534         (assert_malformed): Deleted.
2535         (assert_invalid): Deleted.
2536         (assert_soft_invalid): Deleted.
2537         (assert_unlinkable): Deleted.
2538         (assert_uninstantiable): Deleted.
2539         (assert_trap): Deleted.
2540         (assert_return): Deleted.
2541         (assert_return_nan): Deleted.
2542         * wasm/spec-tests/func.wast.js:
2543         (register): Deleted.
2544         (module): Deleted.
2545         (instance): Deleted.
2546         (assert_malformed): Deleted.
2547         (assert_invalid): Deleted.
2548         (assert_soft_invalid): Deleted.
2549         (assert_unlinkable): Deleted.
2550         (assert_uninstantiable): Deleted.
2551         (assert_trap): Deleted.
2552         (assert_return): Deleted.
2553         (assert_return_nan): Deleted.
2554         * wasm/spec-tests/func_ptrs.wast.js:
2555         (register): Deleted.
2556         (module): Deleted.
2557         (instance): Deleted.
2558         (assert_malformed): Deleted.
2559         (assert_invalid): Deleted.
2560         (assert_soft_invalid): Deleted.
2561         (assert_unlinkable): Deleted.
2562         (assert_uninstantiable): Deleted.
2563         (assert_trap): Deleted.
2564         (assert_return): Deleted.
2565         (assert_return_nan): Deleted.
2566         * wasm/spec-tests/get_local.wast.js:
2567         (register): Deleted.
2568         (module): Deleted.
2569         (instance): Deleted.
2570         (assert_malformed): Deleted.
2571         (assert_invalid): Deleted.
2572         (assert_soft_invalid): Deleted.
2573         (assert_unlinkable): Deleted.
2574         (assert_uninstantiable): Deleted.
2575         (assert_trap): Deleted.
2576         (assert_return): Deleted.
2577         (assert_return_nan): Deleted.
2578         * wasm/spec-tests/globals.wast.js:
2579         (register): Deleted.
2580         (module): Deleted.
2581         (instance): Deleted.
2582         (assert_malformed): Deleted.
2583         (assert_invalid): Deleted.
2584         (assert_soft_invalid): Deleted.
2585         (assert_unlinkable): Deleted.
2586         (assert_uninstantiable): Deleted.
2587         (assert_trap): Deleted.
2588         (assert_return): Deleted.
2589         (assert_return_nan): Deleted.
2590         * wasm/spec-tests/i32.wast.js:
2591         (register): Deleted.
2592         (module): Deleted.
2593         (instance): Deleted.
2594         (assert_malformed): Deleted.
2595         (assert_invalid): Deleted.
2596         (assert_soft_invalid): Deleted.
2597         (assert_unlinkable): Deleted.
2598         (assert_uninstantiable): Deleted.
2599         (assert_trap): Deleted.
2600         (assert_return): Deleted.
2601         (assert_return_nan): Deleted.
2602         * wasm/spec-tests/i64.wast.js:
2603         (register): Deleted.
2604         (module): Deleted.
2605         (instance): Deleted.
2606         (assert_malformed): Deleted.
2607         (assert_invalid): Deleted.
2608         (assert_soft_invalid): Deleted.
2609         (assert_unlinkable): Deleted.
2610         (assert_uninstantiable): Deleted.
2611         (assert_trap): Deleted.
2612         (assert_return): Deleted.
2613         (assert_return_nan): Deleted.
2614         * wasm/spec-tests/if.wast.js: Added.
2615         * wasm/spec-tests/imports.wast.js:
2616         (register): Deleted.
2617         (module): Deleted.
2618         (instance): Deleted.
2619         (assert_malformed): Deleted.
2620         (assert_invalid): Deleted.
2621         (assert_soft_invalid): Deleted.
2622         (assert_unlinkable): Deleted.
2623         (assert_uninstantiable): Deleted.
2624         (assert_trap): Deleted.
2625         (assert_return): Deleted.
2626         (assert_return_nan): Deleted.
2627         * wasm/spec-tests/int_exprs.wast.js:
2628         (register): Deleted.
2629         (module): Deleted.
2630         (instance): Deleted.
2631         (assert_malformed): Deleted.
2632         (assert_invalid): Deleted.
2633         (assert_soft_invalid): Deleted.
2634         (assert_unlinkable): Deleted.
2635         (assert_uninstantiable): Deleted.
2636         (assert_trap): Deleted.
2637         (assert_return): Deleted.
2638         (assert_return_nan): Deleted.
2639         * wasm/spec-tests/int_literals.wast.js:
2640         (register): Deleted.
2641         (module): Deleted.
2642         (instance): Deleted.
2643         (assert_malformed): Deleted.
2644         (assert_invalid): Deleted.
2645         (assert_soft_invalid): Deleted.
2646         (assert_unlinkable): Deleted.
2647         (assert_uninstantiable): Deleted.
2648         (assert_trap): Deleted.
2649         (assert_return): Deleted.
2650         (assert_return_nan): Deleted.
2651         * wasm/spec-tests/jsapi.js: Added.
2652         (testJSAPI.get test):
2653         (testJSAPI.test):
2654         (testJSAPI.set test):
2655         (testJSAPI.assertCompileError):
2656         (testJSAPI.assertCompileSuccess):
2657         (testJSAPI):
2658         * wasm/spec-tests/labels.wast.js: Added.
2659         * wasm/spec-tests/left-to-right.wast.js:
2660         (register): Deleted.
2661         (module): Deleted.
2662         (instance): Deleted.
2663         (assert_malformed): Deleted.
2664         (assert_invalid): Deleted.
2665         (assert_soft_invalid): Deleted.
2666         (assert_unlinkable): Deleted.
2667         (assert_uninstantiable): Deleted.
2668         (assert_trap): Deleted.
2669         (assert_return): Deleted.
2670         (assert_return_nan): Deleted.
2671         * wasm/spec-tests/linking.wast.js:
2672         (register): Deleted.
2673         (module): Deleted.
2674         (instance): Deleted.
2675         (assert_malformed): Deleted.
2676         (assert_invalid): Deleted.
2677         (assert_soft_invalid): Deleted.
2678         (assert_unlinkable): Deleted.
2679         (assert_uninstantiable): Deleted.
2680         (assert_trap): Deleted.
2681         (assert_return): Deleted.
2682         (assert_return_nan): Deleted.
2683         * wasm/spec-tests/loop.wast.js:
2684         (register): Deleted.
2685         (module): Deleted.
2686         (instance): Deleted.
2687         (assert_malformed): Deleted.
2688         (assert_invalid): Deleted.
2689         (assert_soft_invalid): Deleted.
2690         (assert_unlinkable): Deleted.
2691         (assert_uninstantiable): Deleted.
2692         (assert_trap): Deleted.
2693         (assert_return): Deleted.
2694         (assert_return_nan): Deleted.
2695         * wasm/spec-tests/memory.wast.js:
2696         (register): Deleted.
2697         (module): Deleted.
2698         (instance): Deleted.
2699         (assert_malformed): Deleted.
2700         (assert_invalid): Deleted.
2701         (assert_soft_invalid): Deleted.
2702         (assert_unlinkable): Deleted.
2703         (assert_uninstantiable): Deleted.
2704         (assert_trap): Deleted.
2705         (assert_return): Deleted.
2706         (assert_return_nan): Deleted.
2707         * wasm/spec-tests/memory_redundancy.wast.js:
2708         (register): Deleted.
2709         (module): Deleted.
2710         (instance): Deleted.
2711         (assert_malformed): Deleted.
2712         (assert_invalid): Deleted.
2713         (assert_soft_invalid): Deleted.
2714         (assert_unlinkable): Deleted.
2715         (assert_uninstantiable): Deleted.
2716         (assert_trap): Deleted.
2717         (assert_return): Deleted.
2718         (assert_return_nan): Deleted.
2719         * wasm/spec-tests/memory_trap.wast.js: Removed.
2720         * wasm/spec-tests/names.wast.js:
2721         (register): Deleted.
2722         (module): Deleted.
2723         (instance): Deleted.
2724         (assert_malformed): Deleted.
2725         (assert_invalid): Deleted.
2726         (assert_soft_invalid): Deleted.
2727         (assert_unlinkable): Deleted.
2728         (assert_uninstantiable): Deleted.
2729         (assert_trap): Deleted.
2730         (assert_return): Deleted.
2731         (assert_return_nan): Deleted.
2732         * wasm/spec-tests/nop.wast.js:
2733         (register): Deleted.
2734         (module): Deleted.
2735         (instance): Deleted.
2736         (assert_malformed): Deleted.
2737         (assert_invalid): Deleted.
2738         (assert_soft_invalid): Deleted.
2739         (assert_unlinkable): Deleted.
2740         (assert_uninstantiable): Deleted.
2741         (assert_trap): Deleted.
2742         (assert_return): Deleted.
2743         (assert_return_nan): Deleted.
2744         * wasm/spec-tests/resizing.wast.js:
2745         (register): Deleted.
2746         (module): Deleted.
2747         (instance): Deleted.
2748         (assert_malformed): Deleted.
2749         (assert_invalid): Deleted.
2750         (assert_soft_invalid): Deleted.
2751         (assert_unlinkable): Deleted.
2752         (assert_uninstantiable): Deleted.
2753         (assert_trap): Deleted.
2754         (assert_return): Deleted.
2755         (assert_return_nan): Deleted.
2756         * wasm/spec-tests/return.wast.js:
2757         (register): Deleted.
2758         (module): Deleted.
2759         (instance): Deleted.
2760         (assert_malformed): Deleted.
2761         (assert_invalid): Deleted.
2762         (assert_soft_invalid): Deleted.
2763         (assert_unlinkable): Deleted.
2764         (assert_uninstantiable): Deleted.
2765         (assert_trap): Deleted.
2766         (assert_return): Deleted.
2767         (assert_return_nan): Deleted.
2768         * wasm/spec-tests/select.wast.js:
2769         (register): Deleted.
2770         (module): Deleted.
2771         (instance): Deleted.
2772         (assert_malformed): Deleted.
2773         (assert_invalid): Deleted.
2774         (assert_soft_invalid): Deleted.
2775         (assert_unlinkable): Deleted.
2776         (assert_uninstantiable): Deleted.
2777         (assert_trap): Deleted.
2778         (assert_return): Deleted.
2779         (assert_return_nan): Deleted.
2780         * wasm/spec-tests/set_local.wast.js:
2781         (register): Deleted.
2782         (module): Deleted.
2783         (instance): Deleted.
2784         (assert_malformed): Deleted.
2785         (assert_invalid): Deleted.
2786         (assert_soft_invalid): Deleted.
2787         (assert_unlinkable): Deleted.
2788         (assert_uninstantiable): Deleted.
2789         (assert_trap): Deleted.
2790         (assert_return): Deleted.
2791         (assert_return_nan): Deleted.
2792         * wasm/spec-tests/skip-stack-guard-page.wast.js:
2793         (register): Deleted.
2794         (module): Deleted.
2795         (instance): Deleted.
2796         (assert_malformed): Deleted.
2797         (assert_invalid): Deleted.
2798         (assert_soft_invalid): Deleted.
2799         (assert_unlinkable): Deleted.
2800         (assert_uninstantiable): Deleted.
2801         (assert_trap): Deleted.
2802         (assert_return): Deleted.
2803         (assert_return_nan): Deleted.
2804         * wasm/spec-tests/stack.wast.js:
2805         (register): Deleted.
2806         (module): Deleted.
2807         (instance): Deleted.
2808         (assert_malformed): Deleted.
2809         (assert_invalid): Deleted.
2810         (assert_soft_invalid): Deleted.
2811         (assert_unlinkable): Deleted.
2812         (assert_uninstantiable): Deleted.
2813         (assert_trap): Deleted.
2814         (assert_return): Deleted.
2815         (assert_return_nan): Deleted.
2816         * wasm/spec-tests/start.wast.js:
2817         (register): Deleted.
2818         (module): Deleted.
2819         (instance): Deleted.
2820         (assert_malformed): Deleted.
2821         (assert_invalid): Deleted.
2822         (assert_soft_invalid): Deleted.
2823         (assert_unlinkable): Deleted.
2824         (assert_uninstantiable): Deleted.
2825         (assert_trap): Deleted.
2826         (assert_return): Deleted.
2827         (assert_return_nan): Deleted.
2828         * wasm/spec-tests/store_retval.wast.js:
2829         (register): Deleted.
2830         (module): Deleted.
2831         (instance): Deleted.
2832         (assert_malformed): Deleted.
2833         (assert_invalid): Deleted.
2834         (assert_soft_invalid): Deleted.
2835         (assert_unlinkable): Deleted.
2836         (assert_uninstantiable): Deleted.
2837         (assert_trap): Deleted.
2838         (assert_return): Deleted.
2839         (assert_return_nan): Deleted.
2840         * wasm/spec-tests/switch.wast.js:
2841         (register): Deleted.
2842         (module): Deleted.
2843         (instance): Deleted.
2844         (assert_malformed): Deleted.
2845         (assert_invalid): Deleted.
2846         (assert_soft_invalid): Deleted.
2847         (assert_unlinkable): Deleted.
2848         (assert_uninstantiable): Deleted.
2849         (assert_trap): Deleted.
2850         (assert_return): Deleted.
2851         (assert_return_nan): Deleted.
2852         * wasm/spec-tests/tee_local.wast.js:
2853         (register): Deleted.
2854         (module): Deleted.
2855         (instance): Deleted.
2856         (assert_malformed): Deleted.
2857         (assert_invalid): Deleted.
2858         (assert_soft_invalid): Deleted.
2859         (assert_unlinkable): Deleted.
2860         (assert_uninstantiable): Deleted.
2861         (assert_trap): Deleted.
2862         (assert_return): Deleted.
2863         (assert_return_nan): Deleted.
2864         * wasm/spec-tests/traps.wast.js:
2865         (register): Deleted.
2866         (module): Deleted.
2867         (instance): Deleted.
2868         (assert_malformed): Deleted.
2869         (assert_invalid): Deleted.
2870         (assert_soft_invalid): Deleted.
2871         (assert_unlinkable): Deleted.
2872         (assert_uninstantiable): Deleted.
2873         (assert_trap): Deleted.
2874         (assert_return): Deleted.
2875         (assert_return_nan): Deleted.
2876         * wasm/spec-tests/typecheck.wast.js:
2877         (register): Deleted.
2878         (module): Deleted.
2879         (instance): Deleted.
2880         (assert_malformed): Deleted.
2881         (assert_invalid): Deleted.
2882         (assert_soft_invalid): Deleted.
2883         (assert_unlinkable): Deleted.
2884         (assert_uninstantiable): Deleted.
2885         (assert_trap): Deleted.
2886         (assert_return): Deleted.
2887         (assert_return_nan): Deleted.
2888         * wasm/spec-tests/unreachable.wast.js:
2889         (register): Deleted.
2890         (module): Deleted.
2891         (instance): Deleted.
2892         (assert_malformed): Deleted.
2893         (assert_invalid): Deleted.
2894         (assert_soft_invalid): Deleted.
2895         (assert_unlinkable): Deleted.
2896         (assert_uninstantiable): Deleted.
2897         (assert_trap): Deleted.
2898         (assert_return): Deleted.
2899         (assert_return_nan): Deleted.
2900         * wasm/spec-tests/unreached-invalid.wast.js: Added.
2901         * wasm/spec-tests/unwind.wast.js:
2902         (register): Deleted.
2903         (module): Deleted.
2904         (instance): Deleted.
2905         (assert_malformed): Deleted.
2906         (assert_invalid): Deleted.
2907         (assert_soft_invalid): Deleted.
2908         (assert_unlinkable): Deleted.
2909         (assert_uninstantiable): Deleted.
2910         (assert_trap): Deleted.
2911         (assert_return): Deleted.
2912         (assert_return_nan): Deleted.
2913
2914 2017-04-01  Oleksandr Skachkov  <gskachkov@gmail.com>
2915
2916         Object with numerical keys with gaps gets filled by NaN values
2917         https://bugs.webkit.org/show_bug.cgi?id=164412
2918
2919         Reviewed by Merk Lam.
2920
2921         * stress/object-number-properties.js: Added.
2922         (assert):
2923         (boo):
2924
2925 2017-03-30  Michael Saboff  <msaboff@apple.com>
2926
2927         Turning ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js back as it appears to always work
2928         https://bugs.webkit.org/show_bug.cgi?id=170313
2929
2930         Reviewed by Saam Barati.
2931
2932         Enable ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js as it seems solid.
2933
2934         * ChakraCore.yaml:
2935
2936 2017-03-30  Michael Saboff  <msaboff@apple.com>
2937
2938         Enable ChakraCore/Function/FuncBody.js test as it now works
2939         https://bugs.webkit.org/show_bug.cgi?id=170301
2940
2941         Reviewed by Mark Lam.
2942
2943         This test no longer crashes, so enable it and create a JSC specific
2944         expected file.
2945
2946         * ChakraCore.yaml:
2947         * ChakraCore/test/Function/FuncBodyES5.baseline-jsc: Added.
2948
2949 2017-03-30  JF Bastien  <jfbastien@apple.com>
2950
2951         WebAssembly: fix misc JS API implementation inconsistencies
2952         https://bugs.webkit.org/show_bug.cgi?id=170187
2953
2954         Reviewed by Keith Miller.
2955
2956         Verify that WebAssembly function are on the object's __proto__.
2957
2958         * wasm/js-api/Module-compile.js:
2959         * wasm/js-api/validate.js:
2960         * wasm/js-api/web-assembly-instantiate.js:
2961
2962 2017-03-29  JF Bastien  <jfbastien@apple.com>
2963
2964         WebAssembly: add shell-only Memory mode helper
2965         https://bugs.webkit.org/show_bug.cgi?id=170227
2966
2967         Reviewed by Mark Lam.
2968
2969         * wasm/assert.js: fix a prior debug thing I forgot to remove
2970         * wasm/function-tests/memory-section-and-import.js: the assert
2971         issue was hiding a failure in error message here
2972         * wasm/js-api/element.js: the assert issue was hiding a failure in
2973         error message here
2974         (badInstantiation.test):
2975         (badInstantiation):
2976         * wasm/js-api/extension-MemoryMode.js: Added.
2977         (const.validateMode.what.switch):
2978         (testMemoryNoMax):
2979         (testMemory):
2980         (testInstanceNoMemory):
2981         (testInstanceNoMax):
2982         (testInstance):
2983         * wasm/js-api/test_memory.js: the assert issue was hiding a
2984         failure in error message here
2985         (test):
2986
2987 2017-03-28  Keith Miller  <keith_miller@apple.com>
2988
2989         WebAssembly: Make WebAssembly.instantiate/compile truly asynchronous
2990         https://bugs.webkit.org/show_bug.cgi?id=169187
2991
2992         Reviewed by Saam Barati.
2993
2994         * wasm/assert.js:
2995         * wasm/js-api/Module-compile.js:
2996         (async.testPromiseAPI):
2997         * wasm/js-api/web-assembly-compile-parallel.js: Added.
2998         (async.throwExn):
2999         (async.test):
3000         * wasm/js-api/web-assembly-instantiate-parallel.js: Added.
3001         (async.test):
3002         * wasm/js-api/web-assembly-instantiate.js:
3003         (assert.eq.async.test):
3004         (assert.eq):
3005         (assert.asyncTest.async.test):
3006         (assert.asyncTest):
3007         (assert.truthy.async.test): Deleted.
3008         (assert.truthy): Deleted.
3009
3010 2017-03-28  JF Bastien  <jfbastien@apple.com>
3011
3012         WebAssembly: implement Module imports/exports
3013         https://bugs.webkit.org/show_bug.cgi?id=166982
3014
3015         Reviewed by Saam Barati.
3016
3017         * wasm/js-api/Module.exports.js: Added.
3018         (assert.throws.WebAssembly.Module.prototype.exports):
3019         (assert.eq):
3020         * wasm/js-api/Module.imports.js: Added.
3021         (assert.throws.WebAssembly.Module.prototype.imports):
3022         (assert.eq):
3023
3024 2017-03-27  JF Bastien  <jfbastien@apple.com>
3025
3026         WebAssembly: misc memory testing
3027         https://bugs.webkit.org/show_bug.cgi?id=170137
3028
3029         Reviewed by Keith Miller.
3030
3031         * wasm/assert.js: handle newlines in code we print out, avoid regex
3032         * wasm/function-tests/memory-import-and-grow.js: Added.
3033         (const.instantiate):
3034         (const.test):
3035         * wasm/function-tests/memory-section-and-import.js: Added.
3036         (const.instantiate):
3037
3038 2017-03-23  Yusuke Suzuki  <utatane.tea@gmail.com>
3039
3040         [JSC] Use jsNontrivialString agressively for ToString(Int52)
3041         https://bugs.webkit.org/show_bug.cgi?id=170002
3042
3043         Reviewed by Sam Weinig.
3044
3045         * stress/to-string-int52.js: Added.
3046         (shouldBe):
3047         (toString10):
3048         (expected):
3049
3050 2017-03-23  Yusuke Suzuki  <utatane.tea@gmail.com>
3051
3052         [JSC][DFG] Make addShouldSpeculateAnyInt more conservative to avoid regression caused by Double <-> Int52 conversions
3053         https://bugs.webkit.org/show_bug.cgi?id=169998
3054
3055         Reviewed by Saam Barati.
3056
3057         * microbenchmarks/int52-back-and-forth.js: Added.
3058         (shouldBe):
3059         (num):
3060
3061 2017-03-23  Mark Lam  <mark.lam@apple.com>
3062
3063         Clients of JSArray::tryCreateForInitializationPrivate() should do their own null checks.
3064         https://bugs.webkit.org/show_bug.cgi?id=169783
3065
3066         Reviewed by Saam Barati.
3067
3068         * stress/regress-169783.js: Added.
3069
3070 2017-03-22  Yusuke Suzuki  <utatane.tea@gmail.com>
3071
3072         [JSC][DFG] Propagate AnyIntAsDouble information carefully to utilize it in fixup
3073         https://bugs.webkit.org/show_bug.cgi?id=169914
3074
3075         Reviewed by Saam Barati.
3076
3077         * stress/any-int-as-double-add.js: Added.
3078         (shouldBe):
3079         (test):
3080         * stress/to-this-numbers.js: Added.
3081         (shouldBe):
3082         (Number.prototype.toThis):
3083
3084 2017-03-22  Mark Lam  <mark.lam@apple.com>
3085
3086         Add support for Error.stackTraceLimit.
3087         https://bugs.webkit.org/show_bug.cgi?id=169904
3088
3089         Reviewed by Saam Barati.
3090
3091         * stress/error-stack-trace-limit.js: Added.
3092
3093 2017-03-22  Yusuke Suzuki  <utatane.tea@gmail.com>
3094
3095         [JSC] Use jsNontrivialString for Number toString operations
3096         https://bugs.webkit.org/show_bug.cgi?id=169965
3097
3098         Reviewed by Mark Lam.
3099
3100         * stress/to-string-int32.js: Added.
3101         (shouldBe):
3102         (toString10):
3103         (expected):
3104
3105 2017-03-22  JF Bastien  <jfbastien@apple.com>
3106
3107         WebAssembly: test module namespace object for WebAssembly.Instance
3108         https://bugs.webkit.org/show_bug.cgi?id=169951
3109
3110         Reviewed by Saam Barati.
3111
3112         * wasm/js-api/test_basic_api.js:
3113         (const.c.in.constructorProperties.switch):
3114
3115 2017-03-22  JF Bastien  <jfbastien@apple.com>
3116
3117         WebAssembly: constructors without new don't throw
3118         https://bugs.webkit.org/show_bug.cgi?id=165995
3119
3120         Reviewed by Saam Barati.
3121
3122         * wasm/js-api/test_basic_api.js:
3123         (const.c.in.constructorProperties.switch):
3124
3125 2017-03-21  Yusuke Suzuki  <utatane.tea@gmail.com>
3126
3127         [JSC] Optimize Number.prototype.toString on Int32 / Int52 / Double
3128         https://bugs.webkit.org/show_bug.cgi?id=167454
3129
3130         Reviewed by Saam Barati.
3131
3132         * stress/number-to-string-abstract-operation.js: Added.
3133         (shouldBe):
3134         (int32ToString):
3135         (shouldBe.int32ToString.new.Number.int52ToString):
3136         (shouldBe.int32ToString.new.Number):
3137         (shouldBe.doubleToString):
3138         * stress/number-to-string-radix.js: Added.
3139         (shouldBe):
3140         (int32ToString):
3141         (shouldBe.int32ToString.new.Number.int52ToString):
3142         (shouldBe.int32ToString.new.Number):
3143         (shouldBe.doubleToString):
3144         * stress/number-to-string.js: Added.
3145         (shouldBe):
3146         (int32ToString):
3147         (shouldBe.int32ToString.new.Number.int52ToString):
3148         (shouldBe.int32ToString.new.Number):
3149         (shouldBe.doubleToString):
3150
3151 2017-03-19  Chris Dumez  <cdumez@apple.com>
3152
3153         `const location = "foo"` throws in a worker
3154         https://bugs.webkit.org/show_bug.cgi?id=169839
3155
3156         Reviewed by Mark Lam.
3157
3158         * ChakraCore/test/es6/letconst_global_shadow_builtins_nonconfigurable.baseline-jsc:
3159         Update expected jsc result now that we throw a SyntaxError when trying to shadow undefined
3160         with a let variable. We used not to throw because the value is undefined but this was not
3161         as per EcmaScript. Both Firefox and Chrome throw in this case.
3162
3163         * stress/global-lexical-redeclare-variable.js:
3164         (catch):
3165         Update test that defines a non-configurable 'zoo' property on the global object and then
3166         expected shadowing it with a 'let zoo' variable to work because its value was undefined.
3167         This was not as per EcmaScript spec and both Firefox and Chrome throw in this case.
3168
3169 2017-03-19  Yusuke Suzuki  <utatane.tea@gmail.com>
3170
3171         import(arg) crashes when ToString(arg) throws
3172         https://bugs.webkit.org/show_bug.cgi?id=169778
3173
3174         Reviewed by Saam Barati.
3175
3176         * stress/import-reject-with-exception.js: Added.
3177         (shouldBe):
3178         (let.x.get toString):
3179
3180 2017-03-16  Filip Pizlo  <fpizlo@apple.com>
3181
3182         FTL should support global and eval code
3183         https://bugs.webkit.org/show_bug.cgi?id=169656
3184
3185         Reviewed by Geoffrey Garen and Saam Barati.
3186         
3187         Added basic performance tests of global and eval code. These tests will run a lot faster in with
3188         the FTL because of the object allocation.
3189
3190         * microbenchmarks/eval-code-ftl-reentry.js: Added.
3191         * microbenchmarks/eval-code-ftl.js: Added.
3192         * microbenchmarks/global-code-ftl.js: Added.
3193         * stress/arith-log-on-various-types.js: This was a flaky fail with concurrent JIT, so I stopped running it with concurrent JIT. The failure was its assertion about how many times something gets compiled.
3194
3195 2017-03-16  Caio Lima  <ticaiolima@gmail.com>
3196
3197         [ESnext] Implement Object Spread
3198         https://bugs.webkit.org/show_bug.cgi?id=167963
3199
3200         Reviewed by Yusuke Suzuki.
3201
3202         * stress/object-spread.js: Added.
3203         (let.assert):
3204         (assert.sameValue):
3205         (let.o.get a):
3206         (let.obj.get c):
3207         (cthulhu.get x):
3208         (let.obj.set c):
3209         (calls.o.get z):
3210         (calls.o.get a):
3211         (try.let.obj.get foo):
3212         (get calls):
3213
3214 2017-03-15  Yusuke Suzuki  <utatane.tea@gmail.com>
3215
3216         [JSC] Default parameter part should be retrieved by op_get_argument opcode instead of changing arity
3217         https://bugs.webkit.org/show_bug.cgi?id=164582
3218
3219         Reviewed by Saam Barati.
3220
3221         * stress/function-with-defaults-inlining.js: Added.
3222         (shouldBe):
3223         (ok):
3224         (a):
3225         * stress/function-with-defaults-non-inlining.js: Added.
3226         (shouldBe):
3227         (ok):
3228         (a):
3229
3230 2017-03-15  Yusuke Suzuki  <utatane.tea@gmail.com>
3231
3232         [DFG] ToString operation should have fixup for primitives to say this node does not have side effects
3233         https://bugs.webkit.org/show_bug.cgi?id=169544
3234
3235         Reviewed by Saam Barati.
3236
3237         * microbenchmarks/template-string-array.js: Added.
3238         (test):
3239         * stress/to-string-non-cell-use.js: Added.
3240         (shouldBe):
3241         (shouldThrow):
3242
3243 2017-03-13  Commit Queue  <commit-queue@webkit.org>
3244
3245         Unreviewed, rolling out r213856.
3246         https://bugs.webkit.org/show_bug.cgi?id=169562
3247
3248         Breaks JSC stress test stress/super-property-access.js.ftl-
3249         eager failing (Requested by mlam|g on #webkit).
3250
3251         Reverted changeset:
3252
3253         "FTL should not flush strict arguments unless it really needs
3254         to"
3255         https://bugs.webkit.org/show_bug.cgi?id=169519
3256         http://trac.webkit.org/changeset/213856
3257
3258 2017-03-11  Filip Pizlo  <fpizlo@apple.com>
3259
3260         FTL should not flush strict arguments unless it really needs to
3261         https://bugs.webkit.org/show_bug.cgi?id=169519
3262
3263         Reviewed by Mark Lam.
3264         
3265         This benchmark runs 3.5x faster thanks to this patch.
3266
3267         * microbenchmarks/strict-arguments-no-escape.js: Added.
3268         (foo):
3269         (bar):
3270         (baz):
3271
3272 2017-03-13  Caio Lima  <ticaiolima@gmail.com>
3273
3274         [JSC] It should be possible create a label named let when parsing Statement in non strict mode
3275         https://bugs.webkit.org/show_bug.cgi?id=168684
3276
3277         Reviewed by Saam Barati.
3278
3279         * ChakraCore/test/LetConst/DeclOutofBlock.baseline-jsc:
3280
3281 2017-03-10  Saam Barati  <sbarati@apple.com>
3282
3283         WebAssembly: Make more demos run
3284         https://bugs.webkit.org/show_bug.cgi?id=165510
3285         <rdar://problem/29760310>
3286
3287         Reviewed by Keith Miller.
3288
3289         * wasm/Builder.js:
3290         (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
3291         * wasm/js-api/wrapper-function.js: Added.
3292         (exportImport):
3293         (return.new.WebAssembly.Module):
3294         (assert.throws.makeInstance):
3295         (assert.throws.Bar):
3296         (assert.throws):
3297
3298 2017-03-10  Mark Lam  <mark.lam@apple.com>
3299
3300         JSC: BindingNode::bindValue doesn't increase the scope's reference count.
3301         https://bugs.webkit.org/show_bug.cgi?id=168546
3302         <rdar://problem/30589551>
3303
3304         Reviewed by Saam Barati.
3305
3306         * stress/regress-168546.js: Added.
3307
3308 2017-03-09  Caio Lima  <ticaiolima@gmail.com>
3309
3310         [ESnext] Implement Object Rest - Implementing Object Rest Destructuring
3311         https://bugs.webkit.org/show_bug.cgi?id=167962
3312
3313         Reviewed by Keith Miller.
3314
3315         * stress/object-rest-deconstruct.js: Added.
3316         (let.assert):
3317         (let.assertPropDescriptor):
3318         (catch):
3319         (get 3):
3320         (foo):
3321         (let.src.get y):
3322         (let.src.set y):
3323         (let.gen):
3324
3325 2017-03-09  Saam Barati  <sbarati@apple.com>
3326
3327         WebAssembly: Make the Unity AngryBots demo run
3328         https://bugs.webkit.org/show_bug.cgi?id=169268
3329
3330         Reviewed by Keith Miller.
3331
3332         * wasm/function-tests/many-arguments-to-function.js: Added.
3333         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.I32Const.0.I32Const.1.I32Const.2.I32Const.3.I32Const.4.I32Const.5.I32Const.6.I32Const.7.I32Const.8.I32Const.9.I32Const.10.I32Const.11.I32Const.12.I32Const.13.I32Const.14.I32Const.15.I32Const.16.I32Const.17.Call.0.Return.End.End.foo):
3334         (i.instance.exports.f0.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.Call.Return.End.End.foo):
3335         (i.instance.exports.f0):
3336         (instance.exports.f0.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.Call.Return.End.End.foo):
3337         (instance.exports.f0):
3338
3339 2017-03-08  Yusuke Suzuki  <utatane.tea@gmail.com>
3340
3341         [GTK] JSC test stress/arity-check-ftl-throw.js.ftl-no-cjit-validate-sampling-profiler crashing on GTK bot
3342         https://bugs.webkit.org/show_bug.cgi?id=160124
3343
3344         Reviewed by Mark Lam.
3345
3346         * stress/spread-forward-call-varargs-stack-overflow.js:
3347
3348 2017-03-06  Saam Barati  <sbarati@apple.com>
3349
3350         WebAssembly: Implement the WebAssembly.instantiate API
3351         https://bugs.webkit.org/show_bug.cgi?id=165982
3352         <rdar://problem/29760110>
3353
3354         Reviewed by Keith Miller.
3355
3356         * wasm/js-api/web-assembly-instantiate.js: Added.
3357         (assert.eq.async.test):
3358         (assert.eq):
3359         (assert.truthy.async.test):
3360         (assert.truthy):
3361
3362 2017-03-06  Saam Barati  <sbarati@apple.com>
3363
3364         Unreviewed. Fix test expected error message.
3365
3366         * wasm/js-api/element.js:
3367         (assert.throws):
3368
3369 2017-03-06  Caio Lima  <ticaiolima@gmail.com>
3370
3371         op_get_by_id_with_this should use inline caching
3372         https://bugs.webkit.org/show_bug.cgi?id=162124
3373
3374         Reviewed by Saam Barati.
3375
3376         * microbenchmarks/super-getter.js: Added.
3377         (A.prototype.get f):
3378         (A):
3379         (B.prototype.get f):
3380         (B):
3381         * stress/super-force-ic-fail.js: Added.
3382         (let.assert):
3383         (let.aObj.get foo):
3384         (let.obj.jaz):
3385         (let.bObj.get foo):
3386         (let.obj2.foo):
3387         * stress/super-get-by-id.js: Added.
3388         (assert):
3389         (Base):
3390         (Base.prototype.get name):
3391         (Base.prototype.set name):
3392         (Subclass.prototype.get name):
3393         (Subclass):
3394         (getterName):
3395         (getterValue):
3396         (PolymorphicSubclass.prototype.get value):
3397         (PolymorphicSubclass):
3398         (i.let.BaseCode):
3399         (i.get value):
3400         (MegamorphicSubclass.prototype.get value):
3401         (MegamorphicSubclass):
3402         (let.subObj.get value):
3403         (i.catch):
3404         (subObj.get value):
3405         (BaseException):
3406         (BaseException.prototype.get name):
3407         (SubclassException.prototype.get name):
3408         (SubclassException):
3409         (prototype.foo):
3410         (prototype.get name):
3411         (SubclassExceptionComplex.prototype.get name):
3412         (SubclassExceptionComplex):
3413         * stress/super-getter-reset-ic.js: Added.
3414         (let.assert):
3415         (let.B.f):
3416
3417 2017-03-06  Saam Barati  <sbarati@apple.com>
3418
3419         WebAssembly: implement init_expr for Element
3420         https://bugs.webkit.org/show_bug.cgi?id=165888
3421         <rdar://problem/29760199>
3422
3423         Reviewed by Keith Miller.
3424
3425         * wasm/Builder_WebAssemblyBinary.js:
3426         (const.emitters.Element):
3427         * wasm/assert.js:
3428         * wasm/js-api/element.js:
3429         (assert.throws):
3430         (badInstantiation.makeModule):
3431         (badInstantiation.test):
3432         (badInstantiation):
3433         * wasm/js-api/global-error.js:
3434
3435 2017-03-06  Carlos Alberto Lopez Perez  <clopez@igalia.com>
3436
3437         [JSC] [Linux] Test stress/spread-forward-call-varargs-stack-overflow.js fails
3438         https://bugs.webkit.org/show_bug.cgi?id=169206
3439
3440         Unreviewed test gardening.
3441
3442         * stress/spread-forward-call-varargs-stack-overflow.js: Skip on Linux platforms.
3443
3444 2017-03-06  Yusuke Suzuki  <utatane.tea@gmail.com>
3445
3446         [JSC] Allow indexed module namespace object fields
3447         https://bugs.webkit.org/show_bug.cgi?id=168870
3448
3449         Reviewed by Saam Barati.
3450
3451         * wasm/spec-tests/names.wast.js:
3452
3453 2017-03-06  Yusuke Suzuki  <utatane.tea@gmail.com>
3454
3455         Null pointer crash when loading module with unresolved import also as a script file
3456         https://bugs.webkit.org/show_bug.cgi?id=168971
3457
3458         Reviewed by Saam Barati.
3459
3460         * stress/re-execute-error-module.js: Added.
3461         (shouldBe):
3462         (async):
3463         * stress/resources/error-module.js: Added.
3464
3465 2017-03-02  Keith Miller  <keith_miller@apple.com>
3466
3467         WebAssemblyFunction should have Function.prototype as its prototype
3468         https://bugs.webkit.org/show_bug.cgi?id=169101
3469
3470         Reviewed by Filip Pizlo.
3471
3472         * wasm/js-api/web-assembly-function.js: Added.
3473
3474 2017-02-28  Oleksandr Skachkov  <gskachkov@gmail.com>
3475
3476         Use of arguments in arrow function is slow
3477         https://bugs.webkit.org/show_bug.cgi?id=168829
3478
3479         Reviewed by Saam Barati.
3480
3481         * microbenchmarks/arrowfunciton-direct-arguments.js: Added.
3482         (fn):
3483         * microbenchmarks/arrowfunciton-reference-arguments.js: Added.
3484         (fn):
3485
3486 2017-02-27  Commit Queue  <commit-queue@webkit.org>
3487
3488         Unreviewed, rolling out r213019.
3489         https://bugs.webkit.org/show_bug.cgi?id=168925
3490
3491         "It broke 32-bit jsc tests in debug builds" (Requested by
3492         saamyjoon on #webkit).
3493
3494         Reverted changeset:
3495
3496         "op_get_by_id_with_this should use inline caching"
3497         https://bugs.webkit.org/show_bug.cgi?id=162124
3498         http://trac.webkit.org/changeset/213019
3499
3500 2017-02-27  JF Bastien  <jfbastien@apple.com>
3501
3502         WebAssembly: miscellaneous spec fixes part deux
3503         https://bugs.webkit.org/show_bug.cgi?id=168861
3504
3505         Reviewed by Keith Miller.
3506
3507         * wasm.yaml: more passing tests
3508         * wasm/Builder.js: use a Map instead of an Object for the function
3509         index space, because Number entries such as 0 were colliding with
3510         string entries such as "0". This in turn requires some hashing of
3511         objects which are inserted, because Map uses Object's insertion
3512         order when comparing.
3513         (export.default.Builder):
3514         (export.default.Builder.prototype._functionIndexSpaceKeyHash):
3515         (export.default.Builder.prototype._registerFunctionToIndexSpace):
3516         (export.default.Builder.prototype._getFunctionFromIndexSpace):
3517         * wasm/js-api/test_Instance.js: add a FIXME test
3518         * wasm/spec-tests/memory.wast.js:
3519         (assert_unlinkable):
3520         * wasm/spec-tests/names.wast.js:
3521
3522 2017-02-26  Caio Lima  <ticaiolima@gmail.com>
3523
3524         op_get_by_id_with_this should use inline caching
3525         https://bugs.webkit.org/show_bug.cgi?id=162124
3526
3527         Reviewed by Saam Barati.
3528
3529         * microbenchmarks/super-getter.js: Added.
3530         (A.prototype.get f):
3531         (A):
3532         (B.prototype.get f):
3533         (B):
3534         * stress/super-force-ic-fail.js: Added.
3535         (let.assert):
3536         (let.aObj.get foo):
3537         (let.obj.jaz):
3538         (let.bObj.get foo):
3539         (let.obj2.foo):
3540         * stress/super-get-by-id.js: Added.
3541         (assert):
3542         (Base):
3543         (Base.prototype.get name):
3544         (Base.prototype.set name):
3545         (Subclass.prototype.get name):
3546         (Subclass):
3547         (getterName):
3548         (getterValue):
3549         (PolymorphicSubclass.prototype.get value):
3550         (PolymorphicSubclass):
3551         (i.let.BaseCode):
3552         (i.get value):
3553         (MegamorphicSubclass.prototype.get value):
3554         (MegamorphicSubclass):
3555         (let.subObj.get value):
3556         (i.catch):
3557         (subObj.get value):
3558         (BaseException):
3559         (BaseException.prototype.get name):
3560         (SubclassException.prototype.get name):
3561         (SubclassException):
3562         (prototype.foo):
3563         (prototype.get name):
3564         (SubclassExceptionComplex.prototype.get name):
3565         (SubclassExceptionComplex):
3566         * stress/super-getter-reset-ic.js: Added.
3567         (let.assert):
3568         (let.B.f):
3569
3570 2017-02-24  JF Bastien  <jfbastien@apple.com>
3571
3572         WebAssembly: miscellaneous spec fixes
3573         https://bugs.webkit.org/show_bug.cgi?id=168822
3574
3575         Reviewed by Saam Barati.
3576
3577         * wasm.yaml: mark some skip tests as normal, now that they pass
3578         * wasm/Builder.js: error message was wrong, causing extra error if hit
3579         * wasm/js-api/global-error.js: new tests
3580         (assert.throws):
3581         * wasm/spec-tests/call.wast.js: comment out stack check tests
3582         * wasm/spec-tests/call_indirect.wast.js: comment out stack check tests
3583         * wasm/spec-tests/fac.wast.js: comment out stack check tests
3584         * wasm/spec-tests/float_exprs.wast.js: wabt is wrong, bug reported, we should update
3585         * wasm/spec-tests/imports.wast.js: bug in old wabt, fixed in recent wabt
3586         (assert_unlinkable):
3587
3588 2017-02-23  Saam Barati  <sbarati@apple.com>
3589
3590         Intrinsicify parseInt
3591         https://bugs.webkit.org/show_bug.cgi?id=168627
3592
3593         Reviewed by Filip Pizlo.
3594
3595         * stress/parse-int-intrinsic.js: Added.
3596         (assert):
3597         (testIntrinsic.let.s):
3598         (testIntrinsic):
3599         (testIntrinsic2.baz):
3600         (testIntrinsic2):
3601         (testIntrinsic3.foo):
3602         (testIntrinsic3):
3603         (testIntrinsic4.foo):
3604         (testIntrinsic4):
3605         (testIntrinsic5.foo):
3606         (testIntrinsic5):
3607         (testIntrinsic6.foo):
3608         (testIntrinsic6):
3609         (testIntrinsic7.foo):
3610         (testIntrinsic7):
3611
3612 2017-02-23  JF Bastien  <jfbastien@apple.com>
3613
3614         WebAssembly: support 0x1 version
3615         https://bugs.webkit.org/show_bug.cgi?id=168672
3616
3617         Reviewed by Keith Miller.
3618
3619         Update the version number for all the tests. Note that the spec
3620         tests are only updated with a new version number because spec+wabt
3621         aren't ready for 0x1 yet. This is tracked by bug #168784.
3622
3623         * wasm/import-spec-tests.rb: use the new spec repository layout
3624         * wasm/js-api/test_basic_api.js:
3625         * wasm/self-test/test_BuilderWebAssembly.js:
3626         (EmptyModule):
3627         (CustomSection):
3628         * wasm/spec-tests/address.wast.js:
3629         * wasm/spec-tests/binary.wast.js:
3630         * wasm/spec-tests/block.wast.js:
3631         * wasm/spec-tests/br.wast.js:
3632         * wasm/spec-tests/br_if.wast.js:
3633         * wasm/spec-tests/br_table.wast.js:
3634         * wasm/spec-tests/break-drop.wast.js:
3635         * wasm/spec-tests/call.wast.js:
3636         * wasm/spec-tests/call_indirect.wast.js:
3637         * wasm/spec-tests/comments.wast.js:
3638         * wasm/spec-tests/conversions.wast.js:
3639         * wasm/spec-tests/custom_section.wast.js:
3640         * wasm/spec-tests/endianness.wast.js:
3641         * wasm/spec-tests/exports.wast.js:
3642         * wasm/spec-tests/f32.wast.js:
3643         * wasm/spec-tests/f32_cmp.wast.js:
3644         * wasm/spec-tests/f64.wast.js:
3645         * wasm/spec-tests/f64_cmp.wast.js:
3646         * wasm/spec-tests/fac.wast.js:
3647         * wasm/spec-tests/float_exprs.wast.js:
3648         * wasm/spec-tests/float_literals.wast.js:
3649         * wasm/spec-tests/float_memory.wast.js:
3650         * wasm/spec-tests/float_misc.wast.js:
3651         * wasm/spec-tests/forward.wast.js:
3652         * wasm/spec-tests/func.wast.js:
3653         * wasm/spec-tests/func_ptrs.wast.js:
3654         * wasm/spec-tests/get_local.wast.js:
3655         * wasm/spec-tests/globals.wast.js:
3656         * wasm/spec-tests/i32.wast.js:
3657         * wasm/spec-tests/i64.wast.js:
3658         * wasm/spec-tests/imports.wast.js:
3659         * wasm/spec-tests/int_exprs.wast.js:
3660         * wasm/spec-tests/int_literals.wast.js:
3661         * wasm/spec-tests/left-to-right.wast.js:
3662         * wasm/spec-tests/linking.wast.js:
3663         * wasm/spec-tests/loop.wast.js:
3664         * wasm/spec-tests/memory.wast.js:
3665         * wasm/spec-tests/memory_redundancy.wast.js:
3666         * wasm/spec-tests/memory_trap.wast.js:
3667         * wasm/spec-tests/names.wast.js:
3668         * wasm/spec-tests/nop.wast.js:
3669         * wasm/spec-tests/resizing.wast.js:
3670         * wasm/spec-tests/return.wast.js:
3671         * wasm/spec-tests/select.wast.js:
3672         * wasm/spec-tests/set_local.wast.js:
3673         * wasm/spec-tests/skip-stack-guard-page.wast.js:
3674         * wasm/spec-tests/stack.wast.js:
3675         * wasm/spec-tests/start.wast.js:
3676         * wasm/spec-tests/store_retval.wast.js:
3677         * wasm/spec-tests/switch.wast.js:
3678         * wasm/spec-tests/tee_local.wast.js:
3679         * wasm/spec-tests/traps.wast.js:
3680         * wasm/spec-tests/typecheck.wast.js:
3681         * wasm/spec-tests/unreachable.wast.js:
3682         * wasm/spec-tests/unwind.wast.js:
3683         * wasm/wasm.json:
3684
3685 2017-02-22  Yusuke Suzuki  <utatane.tea@gmail.com>
3686
3687         JSModuleNamespace object should have IC
3688         https://bugs.webkit.org/show_bug.cgi?id=160590
3689
3690         Reviewed by Saam Barati.
3691
3692         * modules/module-assert-access-binding.js: Added.
3693         * modules/module-assert-access-namespace.js: Added.
3694         * modules/namespace-empty.js: Added.
3695         (from.string_appeared_here.access):
3696         (i.shouldThrow):
3697         * stress/module-namespace-access-change.js: Added.
3698         (shouldBe):
3699         (access):
3700         (import.string_appeared_here.then):
3701         * stress/module-namespace-access-non-constant.js: Added.
3702         (shouldBe):
3703         (import.string_appeared_here.then):
3704         * stress/module-namespace-access-poly.js: Added.
3705         (shouldBe):
3706         (access):
3707         (import.string_appeared_here.then):
3708         * stress/module-namespace-access-transitive-exports.js: Added.
3709         (shouldBe):
3710         (import.string_appeared_here.then):
3711         * stress/module-namespace-access.js: Added.
3712         (shouldBe):
3713         (import.string_appeared_here.then):
3714         * stress/resources/module-namespace-access-transitive-exports-2.js: Added.
3715         (export.cocoa):
3716         (export.change):
3717         * stress/resources/module-namespace-access-transitive-exports.js: Added.
3718         * stress/resources/module-namespace-access.js: Added.
3719         (export.cocoa):
3720         (export.change):
3721
3722 2017-02-20  Filip Pizlo  <fpizlo@apple.com>
3723
3724         The collector thread should only start when the mutator doesn't have heap access
3725         https://bugs.webkit.org/show_bug.cgi?id=167737
3726
3727         Reviewed by Keith Miller.
3728         
3729         Add versions of splay that flash heap access, to simulate what might happen if a third-party app
3730         was running concurrent GC. In this case, we might actually start the collector thread.
3731
3732         * stress/splay-flash-access-1ms.js: Added.
3733         (performance.now):
3734         (this.Setup.setup.setup):
3735         (this.TearDown.tearDown.tearDown):
3736         (Benchmark):
3737         (BenchmarkResult):
3738         (BenchmarkResult.prototype.valueOf):
3739         (BenchmarkSuite):
3740         (alert):
3741         (Math.random):
3742         (BenchmarkSuite.ResetRNG):
3743         (RunStep):
3744         (BenchmarkSuite.RunSuites):
3745         (BenchmarkSuite.CountBenchmarks):
3746         (BenchmarkSuite.GeometricMean):
3747         (BenchmarkSuite.GeometricMeanTime):
3748         (BenchmarkSuite.AverageAbovePercentile):
3749         (BenchmarkSuite.GeometricMeanLatency):
3750         (BenchmarkSuite.FormatScore):
3751         (BenchmarkSuite.prototype.NotifyStep):
3752         (BenchmarkSuite.prototype.NotifyResult):
3753         (BenchmarkSuite.prototype.NotifyError):
3754         (BenchmarkSuite.prototype.RunSingleBenchmark):
3755         (RunNextSetup):
3756         (RunNextBenchmark):
3757         (RunNextTearDown):
3758         (BenchmarkSuite.prototype.RunStep):
3759         (GeneratePayloadTree):
3760         (GenerateKey):