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