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