1 2017-06-22 Saam Barati <sbarati@apple.com>
3 ValueRep(DoubleRep(@v)) can not simply convert to @v
4 https://bugs.webkit.org/show_bug.cgi?id=173687
5 <rdar://problem/32855563>
9 * stress/dont-strength-reduce-valuerep-of-doublerep.js: Added.
12 2017-06-22 Yusuke Suzuki <utatane.tea@gmail.com>
14 [JSC] Object.values should be implemented in C++
15 https://bugs.webkit.org/show_bug.cgi?id=173703
17 Reviewed by Sam Weinig.
19 * microbenchmarks/object-keys-map-values.js: Added.
21 * microbenchmarks/object-values.js: Added.
23 * stress/object-values-changing-properties.js: Added.
25 (throw.new.Error.let.source.get x):
27 (shouldBe.let.handler.get order):
29 (shouldBe.let.handler.get return):
30 (let.handler.get order):
32 2017-06-21 Saam Barati <sbarati@apple.com>
34 eval virtual call is incorrect in the baseline JIT
35 https://bugs.webkit.org/show_bug.cgi?id=173587
36 <rdar://problem/32867897>
38 Reviewed by Michael Saboff.
40 * stress/do-eval-virtual-call-correctly.js: Added.
46 2017-06-20 Ryan Haddad <ryanhaddad@apple.com>
48 Update test262 test expectations after r218581.
50 Unreviewed test gardening.
54 2017-06-20 Oleksandr Skachkov <gskachkov@gmail.com>
56 Revert changes in bug#160417 about extending `null` not being a derived class
57 https://bugs.webkit.org/show_bug.cgi?id=169293
59 Reviewed by Saam Barati.
61 * stress/class-derived-from-null.js:
70 2017-06-13 Yusuke Suzuki <utatane.tea@gmail.com>
72 [DFG] More ArrayIndexOf fixups for various types
73 https://bugs.webkit.org/show_bug.cgi?id=173176
75 Reviewed by Saam Barati.
77 * stress/array-indexof-arraystorage.js: Added.
81 (indexOfInt32Boolean):
84 (indexOfDoubleBoolean):
87 * stress/array-indexof-constant-folding.js: Added.
91 (indexOfInt32Boolean):
94 (indexOfDoubleBoolean):
95 * stress/array-indexof-hole-and-other.js: Added.
98 * stress/array-indexof-other.js: Added.
104 * stress/array-indexof-symbol.js: Added.
111 2017-06-19 Joseph Pecoraro <pecoraro@apple.com>
113 test262: Completion values for control flow do not match the spec
114 https://bugs.webkit.org/show_bug.cgi?id=171265
116 Reviewed by Saam Barati.
118 * stress/completion-value.js:
119 Condensed test for completion values in top level statements.
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.
125 * ChakraCore/test/GlobalFunctions/evalreturns3.baseline-jsc:
126 This is a progression for currect spec behavior.
128 * mozilla/mozilla-tests.yaml:
129 This test is now outdated, so mark it as failing for that reason.
132 Passing all "cptn" completion value tests.
134 2017-06-17 Keith Miller <keith_miller@apple.com>
136 ArrayBuffer constructor needs to create subclass structures before its buffer
137 https://bugs.webkit.org/show_bug.cgi?id=173510
139 Reviewed by Yusuke Suzuki.
143 2017-06-17 Keith Miller <keith_miller@apple.com>
145 ArrayPrototype methods should use JSValue::toLength for non-Arrays.
146 https://bugs.webkit.org/show_bug.cgi?id=173506
148 Reviewed by Ryosuke Niwa.
152 * ChakraCore/test/Function/apply3.baseline-jsc:
155 2017-06-16 Yusuke Suzuki <utatane.tea@gmail.com>
157 [JSC] Add fast path for Object.assign
158 https://bugs.webkit.org/show_bug.cgi?id=173416
160 Reviewed by Mark Lam.
162 * stress/object-assign-changing-properties.js: Added.
164 (throw.new.Error.let.source.get x):
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.
171 (throw.new.Error.let.handler.get order):
173 2017-06-15 Yusuke Suzuki <utatane.tea@gmail.com>
175 [JSC] Implement Object.assign in C++
176 https://bugs.webkit.org/show_bug.cgi?id=173414
178 Reviewed by Saam Barati.
180 * stress/object-assign-string-first.js: Added.
186 2017-06-14 JF Bastien <jfbastien@apple.com>
188 WebAssembly: remove empty test files
189 https://bugs.webkit.org/show_bug.cgi?id=173382
191 Reviewed by Saam Barati.
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
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.
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
215 I also just imported the updated spec tests which, among other
216 things, test call_indirect:
219 core/call_indirect.wast
223 core/left-to-right.wast
228 core/unreachable.wast
230 So I think it's OK to just delete the tests which should just have
231 been deleted back when tables were added.
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.
237 2017-06-13 JF Bastien <jfbastien@apple.com>
239 WebAssembly: import updated spec tests
240 https://bugs.webkit.org/show_bug.cgi?id=173287
241 <rdar://problem/32725975>
243 Reviewed by Saam Barati.
245 Import spec tests as of 31c641cc15f2aedbec2fa45a5185f68416df578b,
246 with a few modifications so things work.
248 Fix a bunch of bugs found through this process, and punt a few tests (which I
249 marked as blocked by this bug).
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
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
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
266 Prototypes: stringify without .prototype. in the string.
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.
271 Fix compile / instantiate so the reject the promise if given an argument of the
272 wrong type (instead of failing instantly).
274 Fix async on neuter test.
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.
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.
282 Empty data segments are valid, but only when there is no memory. Their index
283 still gets validated, and has to be zero.
287 Error messages with context, the test seems overly restrictive but this is
290 compile/instantiate/validate property descriptors.
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.
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.
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:
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):
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:
333 (uniqueTest): Deleted.
334 (assert_invalid): Deleted.
335 (assert_soft_invalid): Deleted.
338 (get instance): Deleted.
341 (assert_unlinkable): Deleted.
342 (assert_uninstantiable): Deleted.
343 (assert_trap): 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:
355 * wasm/spec-harness/wasm-module-builder.js:
356 (Binary.prototype.emit_section):
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):
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:
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.
414 2017-06-13 Ryan Haddad <ryanhaddad@apple.com>
416 Unreviewed JSC test gardening.
418 * stress/check-string-ident.js:
419 * stress/new-largeish-contiguous-array-with-size.js:
421 2017-06-13 Michael Saboff <msaboff@apple.com>
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
426 Reviewed by Filip Pizlo.
428 * ChakraCore.yaml: Renabled fieldopts/objtypespec-newobj-invalidation.1.js.
429 * stress/regress-173321.js: Added new regression test.
434 2017-06-12 Saam Barati <sbarati@apple.com>
436 Update test262 test expectation since r218082 makes new tests pass.
440 2017-06-12 Saam Barati <sbarati@apple.com>
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>
446 Reviewed by Filip Pizlo.
448 * stress/spec-empty-flows-through-cell-checks.js: Added.
453 2017-06-12 Oleksandr Skachkov <gskachkov@gmail.com>
455 We incorrectly allow escaped characters in keyword tokens
456 https://bugs.webkit.org/show_bug.cgi?id=171310
458 Reviewed by Yusuke Suzuki.
460 * stress/destructuring-assignment-syntax.js:
461 * stress/error-messages-for-in-operator-should-not-crash.js:
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:
469 2017-06-09 Yusuke Suzuki <utatane.tea@gmail.com>
471 [DFG] Add ArrayIndexOf intrinsic
472 https://bugs.webkit.org/show_bug.cgi?id=172421
474 Reviewed by Saam Barati.
476 * stress/array-indexof-array-prototype-change.js: Added.
479 * stress/array-indexof-have-a-bad-time-getter.js: Added.
482 * stress/array-indexof-have-a-bad-time.js: Added.
485 * stress/array-indexof-hole-with-prototype.js: Added.
488 * stress/array-indexof-hole.js: Added.
491 * stress/array-indexof-index.js: Added.
498 * stress/array-indexof-negative-index.js: Added.
505 * stress/array-indexof-non-int32-start-index.js: Added.
509 * stress/array-indexof-object-prototype-change.js: Added.
512 * stress/array-indexof-object.js: Added.
515 * stress/array-indexof-original-array.js: Added.
518 * stress/array-indexof-string.js: Added.
521 * stress/array-indexof-structure-change-convert.js: Added.
524 * stress/array-indexof-structure-change.js: Added.
527 * stress/array-indexof.js: Added.
531 2017-06-11 Keith Miller <keith_miller@apple.com>
533 TypedArray constructor with string shouldn't throw
534 https://bugs.webkit.org/show_bug.cgi?id=173181
536 Reviewed by JF Bastien.
538 We should be coercing primitive arguments to numbers in the various
539 TypedArray constructors.
541 * stress/typedarray-constructor.js:
543 2017-06-11 Yusuke Suzuki <utatane.tea@gmail.com>
545 Unreviewed, update test results part 3
546 https://bugs.webkit.org/show_bug.cgi?id=173227
548 * microbenchmarks/regexp-prototype-search-observable-side-effects.js:
550 2017-06-10 Yusuke Suzuki <utatane.tea@gmail.com>
552 Unreviewed, update test results part 2
553 https://bugs.webkit.org/show_bug.cgi?id=173227
557 2017-06-10 Yusuke Suzuki <utatane.tea@gmail.com>
559 Unreviewed, update test results
560 https://bugs.webkit.org/show_bug.cgi?id=173227
562 * microbenchmarks/string-prototype-search-observable-side-effects.js:
565 2017-06-10 Yusuke Suzuki <utatane.tea@gmail.com>
567 [JSC] Update RegExp.prototype.[@@search]] implementation according to the latest spec
568 https://bugs.webkit.org/show_bug.cgi?id=173227
570 Reviewed by Mark Lam.
574 * es6/Proxy_internal_get_calls_RegExp.prototype[Symbol.search].js:
576 2017-06-08 Keith Miller <keith_miller@apple.com>
578 WebAssembly: We should only create wrappers for functions that can be exported
579 https://bugs.webkit.org/show_bug.cgi?id=173088
581 Reviewed by Saam Barati.
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.
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.
616 2017-06-07 JF Bastien <jfbastien@apple.com>
618 WebAssembly: test imports and exports with 16-bit characters
619 https://bugs.webkit.org/show_bug.cgi?id=165977
620 <rdar://problem/29760130>
622 Reviewed by Saam Barati.
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.
627 * wasm/function-tests/memory-import-and-grow.js:
628 * wasm/js-api/Instance.imports.exports.unicode.js: Added. Main new test.
630 * wasm/js-api/global-error.js:
633 * wasm/js-api/table.js:
635 (new.WebAssembly.Table):
636 * wasm/js-api/test_memory.js:
638 * wasm/js-api/wasm-to-wasm-bad-signature.js:
639 (BadSignatureDropStartParams.):
640 (BadSignatureDropStartParams):
641 (BadSignatureDropEndParams.):
642 (BadSignatureSwapParam.):
644 * wasm/js-api/web-assembly-instantiate.js:
645 (assert.asyncTest.async.test):
647 * wasm/js-api/wrapper-function.js:
648 (return.new.WebAssembly.Module):
650 2017-06-07 Mark Lam <mark.lam@apple.com>
652 Restrict the regress-173035.js test to only run on Darwin x86-64.
653 https://bugs.webkit.org/show_bug.cgi?id=173075
655 Reviewed by Saam Barati.
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
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.
665 * stress/regress-173035.js:
667 2017-06-07 Mark Lam <mark.lam@apple.com>
669 ASSERTION failure: !masqueradesAsUndefinedWatchpointIsStillValid() || !isKnownCell(operand.node())
670 https://bugs.webkit.org/show_bug.cgi?id=168587
674 Unskipping the test because the issue has been fixed in https://bugs.webkit.org/show_bug.cgi?id=172673.
676 * stress/test-finally.js:
678 2017-06-06 Mark Lam <mark.lam@apple.com>
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>
684 Reviewed by Geoffrey Garen and Filip Pizlo.
686 * stress/regress-173035.js: Added.
688 2017-06-06 Saam Barati <sbarati@apple.com>
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>
694 Reviewed by JF Bastien.
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):
702 2017-06-06 Joseph Pecoraro <pecoraro@apple.com>
704 Unreviewed rollout r217807. Caused a test to crash.
706 * heapProfiler/class-names.js: Removed.
707 * heapProfiler/driver/driver.js:
708 (CheapHeapSnapshotNode):
710 (createCheapHeapSnapshot):
712 (createHeapSnapshot):
713 * typeProfiler/inheritance.js:
719 2017-06-06 Filip Pizlo <fpizlo@apple.com>
721 index out of bound in bytecodebasicblock
722 https://bugs.webkit.org/show_bug.cgi?id=172963
724 Reviewed by Saam Barati and Mark Lam.
726 * stress/dfg-call-class-constructor.js: Added.
730 2017-06-05 Joseph Pecoraro <pecoraro@apple.com>
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>
736 Reviewed by Saam Barati.
738 * typeProfiler/inheritance.js:
739 Rewrite the test slightly for clarity. The hoisting was confusing.
741 * heapProfiler/class-names.js: Added.
745 Test object types and improved class names.
747 * heapProfiler/driver/driver.js:
748 (CheapHeapSnapshotNode):
750 (createCheapHeapSnapshot):
752 (createHeapSnapshot):
753 Update snapshot parsing from version 1 to version 2.
755 2017-06-02 Yusuke Suzuki <utatane.tea@gmail.com>
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
760 Reviewed by Saam Barati.
762 * modules/async-function-export.js: Added.
766 2017-06-02 Yusuke Suzuki <utatane.tea@gmail.com>
768 ES2015 modules - Export default function hoisting
769 https://bugs.webkit.org/show_bug.cgi?id=170174
771 Reviewed by Saam Barati.
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
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):
783 2017-06-01 Oleksandr Skachkov <gskachkov@gmail.com>
785 Class Proxy can't be extended
786 https://bugs.webkit.org/show_bug.cgi?id=169040
788 Reviewed by Saam Barati.
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
793 * stress/proxy-class.js: Added.
795 (throw.new.Error.SuperClass):
799 2017-05-31 Yusuke Suzuki <utatane.tea@gmail.com>
801 [JSC] Implement String.prototype.concat in JS builtins
802 https://bugs.webkit.org/show_bug.cgi?id=172798
804 Reviewed by Sam Weinig.
806 * microbenchmarks/string-concat-convert.js: Added.
808 * microbenchmarks/string-concat-long-convert.js: Added.
810 * microbenchmarks/string-concat-long.js: Added.
812 * microbenchmarks/string-concat.js: Added.
815 2017-05-31 Oleksandr Skachkov <gskachkov@gmail.com>
817 Rolling out: Prevent async methods named 'function'
818 https://bugs.webkit.org/show_bug.cgi?id=172776
820 Reviewed by Mark Lam.
822 * stress/async-await-syntax.js:
823 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
824 (testTopLevelAsyncAwaitSyntaxSloppyMode):
825 (prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
826 (prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
827 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
829 2017-05-31 Ryan Haddad <ryanhaddad@apple.com>
831 Skip flaky JSC test stress/test-finally.js
832 https://bugs.webkit.org/show_bug.cgi?id=168587
834 Unreviewed test gardening.
836 * stress/test-finally.js:
838 2017-05-30 Oleksandr Skachkov <gskachkov@gmail.com>
840 Prevent async methods named 'function' in Object literal
841 https://bugs.webkit.org/show_bug.cgi?id=172660
843 Reviewed by Saam Barati.
845 * stress/async-await-syntax.js:
846 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
848 2017-05-30 Oleksandr Skachkov <gskachkov@gmail.com>
850 ASSERTION FAILED: generator.isConstructor() || generator.derivedContextType() == DerivedContextType::DerivedConstructorContext
851 https://bugs.webkit.org/show_bug.cgi?id=171274
853 Reviewed by Saam Barati.
855 * stress/async-arrow-functions-lexical-binding-in-class.js:
857 (shouldBeAsyncAndStoreBind):
858 (promise.new.Promise):
860 (ChildClass4.prototype.classValue):
861 (ChildClass4.prototype.get classProperty):
862 * stress/async-arrow-functions-lexical-super-binding.js:
864 (const.childA1.new.prototype.var.f.async):
865 (const.childA1.new.var):
867 (const.childA2.new.prototype.var.f.async):
868 (const.childA2.new.var):
870 (const.childA3.new.prototype.var.f.async):
871 (const.childA3.new.var):
873 (try.childA4.new.prototype.var.f.async):
874 (try.childA4.new.var):
877 (const.childA5.new.prototype.var.f.async):
878 (const.childA5.new.var):
881 (checkClass.new.prototype.var.f.async):
882 (checkClass.new.var):
884 (checkClass.new.prototype.method):
885 (checkClass.new.prototype.prop):
887 2017-05-27 Yusuke Suzuki <utatane.tea@gmail.com>
889 [JSC] Map and Set constructors should have fast path for cloning
890 https://bugs.webkit.org/show_bug.cgi?id=172413
892 Reviewed by Saam Barati.
894 * stress/map-clone-instance-iterator-change.js: Added.
896 (map.Symbol.iterator):
897 * stress/map-clone-iterator-change.js: Added.
899 (Map.prototype.Symbol.iterator):
900 * stress/map-clone-next-change.js: Added.
902 (map.Symbol.iterator.__proto__.next):
903 * stress/map-clone.js: Added.
906 * stress/map-inherit-set.js: Added.
910 * stress/set-clone-instance-iterator-change.js: Added.
912 (set Symbol.iterator):
913 * stress/set-clone-iterator-change.js: Added.
915 (set Set.prototype.Symbol.iterator):
916 * stress/set-clone-next-change.js: Added.
918 (set Symbol.iterator.__proto__.next):
919 * stress/set-clone.js: Added.
921 (set Set.prototype.add):
922 * stress/set-inherit-add.js: Added.
924 (DerivedSet.set add):
926 2017-05-26 Ryan Haddad <ryanhaddad@apple.com>
928 Unreviewed, rolling out r217458.
930 This change caused 55 JSC test failures.
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
938 2017-05-26 Yusuke Suzuki <utatane.tea@gmail.com>
940 Give ModuleProgram the same treatment that we did for ProgramCode in bug#167725
941 https://bugs.webkit.org/show_bug.cgi?id=167805
943 Reviewed by Saam Barati.
945 * modules/module-jit-reachability.js: Added.
947 2017-05-26 Oleksandr Skachkov <gskachkov@gmail.com>
949 Prevent async methods named 'function'
950 https://bugs.webkit.org/show_bug.cgi?id=172598
952 Reviewed by Mark Lam.
954 * stress/async-await-syntax.js:
955 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
956 (testTopLevelAsyncAwaitSyntaxSloppyMode):
957 (prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
958 (prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
959 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
961 2017-05-25 Keith Miller <keith_miller@apple.com>
963 Date should use historical data if it's available.
964 https://bugs.webkit.org/show_bug.cgi?id=172592
966 Reviewed by Mark Lam.
968 Remove parts of the date tests that rely on the absence of
969 historical data in Date.
971 * mozilla/ecma/Date/15.9.5.31-1.js:
973 * mozilla/ecma/Date/15.9.5.35-1.js:
976 2017-05-25 Saam Barati <sbarati@apple.com>
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>
982 Reviewed by Mark Lam.
984 * stress/for-in-invalidation-for-any-write.js: Added.
989 2017-05-25 Mark Lam <mark.lam@apple.com>
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>
995 Reviewed by Filip Pizlo.
997 * stress/regress-172548.patch: Added.
999 2017-05-23 Saam Barati <sbarati@apple.com>
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>
1005 Reviewed by Mark Lam.
1007 * wasm/js-api/dont-mmap-zero-byte-memory.js: Added.
1010 2017-05-23 Saam Barati <sbarati@apple.com>
1012 CFGSimplificationPhase should not merge a block with itself
1013 https://bugs.webkit.org/show_bug.cgi?id=172508
1014 <rdar://problem/28424006>
1016 Reviewed by Keith Miller.
1018 * stress/dont-crash-in-cfg-simplification.js: Added.
1023 2017-05-20 Yusuke Suzuki <utatane.tea@gmail.com>
1025 [FTL] Support GetByVal with ArrayStorage and SlowPutArrayStorage
1026 https://bugs.webkit.org/show_bug.cgi?id=172216
1028 Reviewed by Saam Barati.
1030 * stress/array-storage-get-by-val.js: Added.
1034 (testSlowPutOutOfBound):
1035 (testSlowPutInBound):
1037 2017-05-21 Yusuke Suzuki <utatane.tea@gmail.com>
1039 Unreviewed, fix commented out tests
1040 https://bugs.webkit.org/show_bug.cgi?id=172225
1042 * stress/get-by-val-string.js:
1045 (Hello.prototype.get 42):
1046 (Hello.prototype.43):
1049 (throw.new.Error): Deleted.
1051 2017-05-21 Saam Barati <sbarati@apple.com>
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>
1057 Reviewed by Yusuke Suzuki.
1059 * stress/lexical-scoping-for-loop.js: Added.
1074 2017-05-19 Yusuke Suzuki <utatane.tea@gmail.com>
1076 [JSC] Make get_by_val & string "499" to number 499
1077 https://bugs.webkit.org/show_bug.cgi?id=172225
1079 Reviewed by Saam Barati.
1081 * stress/get-by-val-string.js: Added.
1086 (Hello.prototype.get 42):
1087 (Hello.prototype.43):
1090 2017-05-19 Mark Lam <mark.lam@apple.com>
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>
1096 Reviewed by Filip Pizlo.
1098 * stress/regress-172383.js: Added.
1100 2017-05-19 Ryan Haddad <ryanhaddad@apple.com>
1102 Unreviewed, rolling out r217156.
1104 This change broke the iOS build.
1108 "DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring
1110 https://bugs.webkit.org/show_bug.cgi?id=172383
1111 http://trac.webkit.org/changeset/217156
1113 2017-05-19 Mark Lam <mark.lam@apple.com>
1115 Add missing exception check.
1116 https://bugs.webkit.org/show_bug.cgi?id=172346
1117 <rdar://problem/32289640>
1119 Reviewed by Geoffrey Garen.
1121 * stress/regress-172346.js: Added.
1123 2017-05-19 Mark Lam <mark.lam@apple.com>
1125 DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
1126 https://bugs.webkit.org/show_bug.cgi?id=172383
1127 <rdar://problem/31418651>
1129 Reviewed by Filip Pizlo.
1131 * stress/regress-172383.js: Added.
1133 2017-05-19 Filip Pizlo <fpizlo@apple.com>
1135 arrayProtoPrivateFuncConcatMemcpy needs to be down with firstArray being undecided
1136 https://bugs.webkit.org/show_bug.cgi?id=172369
1138 Reviewed by Mark Lam.
1140 * stress/undecided-concat.js: Added.
1142 2017-05-19 Yusuke Suzuki <utatane.tea@gmail.com>
1144 [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
1145 https://bugs.webkit.org/show_bug.cgi?id=172098
1147 Reviewed by Saam Barati.
1149 * stress/check-sub-class.js: Added.
1156 2017-05-18 JF Bastien <jfbastien@apple.com>
1158 WebAssembly: exports is a getter
1159 https://bugs.webkit.org/show_bug.cgi?id=172129
1161 Reviewed by Saam Barati.
1163 Update test to reflect new semantics.
1165 * wasm/js-api/test_basic_api.js:
1166 (const.c.in.constructorProperties.switch):
1168 2017-05-18 Saam Barati <sbarati@apple.com>
1170 Proxy's [[Get]] passes incorrect receiver
1171 https://bugs.webkit.org/show_bug.cgi?id=164849
1172 <rdar://problem/31767058>
1174 Reviewed by Yusuke Suzuki.
1176 * stress/proxy-get-set-correct-receiver.js: Added.
1179 (test.let.target.set prop):
1180 (test.let.target.get prop):
1182 * stress/proxy-set.js:
1184 * stress/reflect-set-proxy-set.js:
1186 * stress/reflect-set-receiver-proxy-set.js:
1189 2017-05-18 Filip Pizlo <fpizlo@apple.com>
1191 Constructor calls set this too early
1192 https://bugs.webkit.org/show_bug.cgi?id=172302
1194 Reviewed by Saam Barati.
1196 This tests all three kinds of constructs in BytecodeGenerator. All three were previously
1199 * stress/construct-overwritten-variable.js: Added.
1201 * stress/construct-spread-overwritten-variable-2.js: Added.
1203 * stress/construct-spread-overwritten-variable.js: Added.
1206 2017-05-18 Saam Barati <sbarati@apple.com>
1208 WebAssembly: perform stack checks
1209 https://bugs.webkit.org/show_bug.cgi?id=165546
1210 <rdar://problem/29760307>
1212 Reviewed by Filip Pizlo.
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):
1224 (assertThrows.test.makeSignature):
1225 (assertThrows.test.makeInstance):
1226 (assertThrows.test):
1229 2017-05-18 Keith Miller <keith_miller@apple.com>
1231 WebAssembly API: test with neutered inputs
1232 https://bugs.webkit.org/show_bug.cgi?id=163899
1234 Reviewed by JF Bastien.
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):
1242 2017-05-18 Filip Pizlo <fpizlo@apple.com>
1244 DFG inlining should be hardened for the no-result case
1245 https://bugs.webkit.org/show_bug.cgi?id=172290
1247 Reviewed by Saam Barati.
1249 * stress/array-constructor-no-result.js: Added.
1251 * stress/pow-no-result.js: Added.
1254 2017-05-18 Commit Queue <commit-queue@webkit.org>
1256 Unreviewed, rolling out r217031, r217032, and r217037.
1257 https://bugs.webkit.org/show_bug.cgi?id=172293
1259 cause linking errors in Windows (Requested by yusukesuzuki on
1262 Reverted changesets:
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
1268 "Unreviewed, rebaseline for newly added ClassInfo"
1269 https://bugs.webkit.org/show_bug.cgi?id=172098
1270 http://trac.webkit.org/changeset/217032
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
1276 2017-05-16 Yusuke Suzuki <utatane.tea@gmail.com>
1278 [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
1279 https://bugs.webkit.org/show_bug.cgi?id=172098
1281 Reviewed by Saam Barati.
1283 * stress/check-sub-class.js: Added.
1290 2017-05-17 Filip Pizlo <fpizlo@apple.com>
1292 Unreviewed, address mlam's review feedback.
1294 * stress/arguments-elimination-varargs-too-many-args-arg-count.js:
1296 2017-05-17 Saam Barati <sbarati@apple.com>
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>
1302 Reviewed by Keith Miller.
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):
1310 (assert.eq.makeInstance):
1311 (assert.eq.makeInstance2):
1314 2017-05-17 Filip Pizlo <fpizlo@apple.com>
1316 JSC: Incorrect LoadVarargs handling in ArgumentsEliminationPhase::transform
1317 https://bugs.webkit.org/show_bug.cgi?id=172208
1319 Reviewed by Saam Barati.
1321 * stress/arguments-elimination-varargs-too-many-args-arg-count.js: Added.
1326 2017-05-16 Yusuke Suzuki <utatane.tea@gmail.com>
1328 [DFG] Constant Folding Phase should convert MakeRope("", String) => Identity(String)
1329 https://bugs.webkit.org/show_bug.cgi?id=172115
1331 Reviewed by Saam Barati.
1333 * stress/constant-folding-should-fold-make-rope-with-empty-strings.js: Added.
1341 2017-05-16 JF Bastien <jfbastien@apple.com>
1343 WebAssembly: add memory fuzzer
1344 https://bugs.webkit.org/show_bug.cgi?id=169976
1345 <rdar://problem/31965328>
1347 Reviewed by Keith Miller.
1349 * wasm/fuzz/memory.js: Added.
1351 (const.action.string_appeared_here):
1352 (const.performAction):
1355 2017-05-16 JF Bastien <jfbastien@apple.com>
1357 WebAssembly: validate load / store alignment
1358 https://bugs.webkit.org/show_bug.cgi?id=168836
1359 <rdar://problem/31965349>
1361 Reviewed by Keith Miller.
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
1368 2017-05-15 Mark Lam <mark.lam@apple.com>
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
1373 Rubber-stamped by Saam Barati.
1375 * stress/object-rest-deconstruct.js: Removed.
1376 * stress/object-spread.js: Removed.
1378 2017-05-11 JF Bastien <jfbastien@apple.com>
1380 WebAssembly: stop supporting 0xD
1381 https://bugs.webkit.org/show_bug.cgi?id=168788
1382 <rdar://problem/31880922>
1384 Reviewed by Saam Barati.
1386 Test that only version 1 is supported.
1388 * wasm/js-api/version.js: Added.
1390 2017-05-10 JF Bastien <jfbastien@apple.com>
1392 WebAssemby: builder doesn't do Memory section maximum correctly
1393 https://bugs.webkit.org/show_bug.cgi?id=171931
1395 Reviewed by Keith Miller.
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.
1403 2017-05-10 JF Bastien <jfbastien@apple.com>
1405 WebAssembly: support name section
1406 https://bugs.webkit.org/show_bug.cgi?id=171263
1408 Reviewed by Keith Miller.
1410 * wasm/function-tests/nameSection.js: Added.
1412 * wasm/function-tests/nameSection.wasm: Added.
1413 * wasm/function-tests/stack-trace.js: Update format
1415 2017-05-10 Filip Pizlo <fpizlo@apple.com>
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
1420 Reviewed by Michael Saboff.
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.
1425 * stress/for-in-postfix-ignored-index.js: Added.
1427 * stress/for-in-postfix-index.js: Added.
1429 * stress/for-in-prefix-index.js: Added.
1432 2017-05-08 Mark Lam <mark.lam@apple.com>
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>
1438 Reviewed by Saam Barati.
1440 * stress/bug-171786.js: Added.
1442 2017-05-06 Oleksandr Skachkov <gskachkov@gmail.com>
1444 [ES6] Arrow function. Issue in access to this after eval('super()') within constructor
1445 https://bugs.webkit.org/show_bug.cgi?id=171543
1447 Reviewed by Saam Barati.
1449 * stress/arrowfunction-lexical-bind-supercall-4.js:
1453 2017-05-05 Saam Barati <sbarati@apple.com>
1455 putDirectIndex does not properly do defineOwnProperty
1456 https://bugs.webkit.org/show_bug.cgi?id=171591
1457 <rdar://problem/31735695>
1459 Reviewed by Geoffrey Garen.
1461 * stress/array-prototype-splice-making-typed-array.js:
1463 * stress/array-species-config-array-constructor.js:
1466 * stress/put-direct-index-broken-2.js: Added.
1469 (makeLengthWritable):
1470 (set get restoreOldDesc):
1471 * stress/put-direct-index-broken.js: Added.
1475 * stress/put-indexed-getter-setter.js: Added.
1476 (foo.X.prototype.set 7):
1477 (foo.X.prototype.get 7):
1481 2017-05-04 Yusuke Suzuki <utatane.tea@gmail.com>
1483 [JSC] Math unary functions should be handled by DFG
1484 https://bugs.webkit.org/show_bug.cgi?id=171269
1486 Reviewed by Saam Barati.
1488 * stress/arith-acos-on-various-types.js: Added.
1489 (let.validInputTypedTestCases.validInputTestCases.map):
1491 (opaqueACosNoArgument):
1493 (opaqueAllTypesACos):
1495 (testSingleTypeCall):
1497 (opaqueACosForSideEffects):
1498 (testSideEffect.let.testObject.valueOf):
1501 (testCSE.let.testObject.valueOf):
1504 (testDCE.let.testObject.valueOf):
1506 (testException.opaqueACosWithException):
1508 * stress/arith-acosh-on-various-types.js: Added.
1509 (let.validInputTypedTestCases.validInputTestCases.map):
1511 (opaqueACoshNoArgument):
1513 (opaqueAllTypesACosh):
1515 (testSingleTypeCall):
1517 (opaqueACoshForSideEffects):
1518 (testSideEffect.let.testObject.valueOf):
1520 (opaqueACoshForCSE):
1521 (testCSE.let.testObject.valueOf):
1523 (opaqueACoshForDCE):
1524 (testDCE.let.testObject.valueOf):
1526 (testException.opaqueACoshWithException):
1528 * stress/arith-asin-on-various-types.js: Added.
1529 (let.validInputTypedTestCases.validInputTestCases.map):
1531 (opaqueASinNoArgument):
1533 (opaqueAllTypesASin):
1535 (testSingleTypeCall):
1537 (opaqueASinForSideEffects):
1538 (testSideEffect.let.testObject.valueOf):
1541 (testCSE.let.testObject.valueOf):
1544 (testDCE.let.testObject.valueOf):
1546 (testException.opaqueASinWithException):
1548 * stress/arith-asinh-on-various-types.js: Added.
1549 (let.validInputTypedTestCases.validInputTestCases.map):
1551 (opaqueASinhNoArgument):
1553 (opaqueAllTypesASinh):
1555 (testSingleTypeCall):
1557 (opaqueASinhForSideEffects):
1558 (testSideEffect.let.testObject.valueOf):
1560 (opaqueASinhForCSE):
1561 (testCSE.let.testObject.valueOf):
1563 (opaqueASinhForDCE):
1564 (testDCE.let.testObject.valueOf):
1566 (testException.opaqueASinhWithException):
1568 * stress/arith-atan-on-various-types.js: Added.
1569 (let.validInputTypedTestCases.validInputTestCases.map):
1571 (opaqueATanNoArgument):
1573 (opaqueAllTypesATan):
1575 (testSingleTypeCall):
1577 (opaqueATanForSideEffects):
1578 (testSideEffect.let.testObject.valueOf):
1581 (testCSE.let.testObject.valueOf):
1584 (testDCE.let.testObject.valueOf):
1586 (testException.opaqueATanWithException):
1588 * stress/arith-atanh-on-various-types.js: Added.
1589 (let.validInputTypedTestCases.validInputTestCases.map):
1591 (opaqueATanhNoArgument):
1593 (opaqueAllTypesATanh):
1595 (testSingleTypeCall):
1597 (opaqueATanhForSideEffects):
1598 (testSideEffect.let.testObject.valueOf):
1600 (opaqueATanhForCSE):
1601 (testCSE.let.testObject.valueOf):
1603 (opaqueATanhForDCE):
1604 (testDCE.let.testObject.valueOf):
1606 (testException.opaqueATanhWithException):
1608 * stress/arith-cbrt-on-various-types.js: Added.
1609 (let.validInputTypedTestCases.validInputTestCases.map):
1611 (opaqueCbrtNoArgument):
1613 (opaqueAllTypesCbrt):
1615 (testSingleTypeCall):
1617 (opaqueCbrtForSideEffects):
1618 (testSideEffect.let.testObject.valueOf):
1621 (testCSE.let.testObject.valueOf):
1624 (testDCE.let.testObject.valueOf):
1626 (testException.opaqueCbrtWithException):
1628 * stress/arith-cosh-on-various-types.js: Added.
1629 (let.validInputTypedTestCases.validInputTestCases.map):
1631 (opaqueCoshNoArgument):
1633 (opaqueAllTypesCosh):
1635 (testSingleTypeCall):
1637 (opaqueCoshForSideEffects):
1638 (testSideEffect.let.testObject.valueOf):
1641 (testCSE.let.testObject.valueOf):
1644 (testDCE.let.testObject.valueOf):
1646 (testException.opaqueCoshWithException):
1648 * stress/arith-expm1-on-various-types.js: Added.
1649 (let.validInputTypedTestCases.validInputTestCases.map):
1651 (opaqueExpm1NoArgument):
1653 (opaqueAllTypesExpm1):
1655 (testSingleTypeCall):
1657 (opaqueExpm1ForSideEffects):
1658 (testSideEffect.let.testObject.valueOf):
1660 (opaqueExpm1ForCSE):
1661 (testCSE.let.testObject.valueOf):
1663 (opaqueExpm1ForDCE):
1664 (testDCE.let.testObject.valueOf):
1666 (testException.opaqueExpm1WithException):
1668 * stress/arith-log10-on-various-types.js: Added.
1669 (let.validInputTypedTestCases.validInputTestCases.map):
1671 (opaqueLog10NoArgument):
1673 (opaqueAllTypesLog10):
1675 (testSingleTypeCall):
1677 (opaqueLog10ForSideEffects):
1678 (testSideEffect.let.testObject.valueOf):
1680 (opaqueLog10ForCSE):
1681 (testCSE.let.testObject.valueOf):
1683 (opaqueLog10ForDCE):
1684 (testDCE.let.testObject.valueOf):
1686 (testException.opaqueLog10WithException):
1688 * stress/arith-log2-on-various-types.js: Added.
1689 (let.validInputTypedTestCases.validInputTestCases.map):
1691 (opaqueLog2NoArgument):
1693 (opaqueAllTypesLog2):
1695 (testSingleTypeCall):
1697 (opaqueLog2ForSideEffects):
1698 (testSideEffect.let.testObject.valueOf):
1701 (testCSE.let.testObject.valueOf):
1704 (testDCE.let.testObject.valueOf):
1706 (testException.opaqueLog2WithException):
1708 * stress/arith-sinh-on-various-types.js: Added.
1709 (let.validInputTypedTestCases.validInputTestCases.map):
1711 (opaqueSinhNoArgument):
1713 (opaqueAllTypesSinh):
1715 (testSingleTypeCall):
1717 (opaqueSinhForSideEffects):
1718 (testSideEffect.let.testObject.valueOf):
1721 (testCSE.let.testObject.valueOf):
1724 (testDCE.let.testObject.valueOf):
1726 (testException.opaqueSinhWithException):
1728 * stress/arith-tan-on-various-types.js:
1730 * stress/arith-tanh-on-various-types.js: Added.
1731 (let.validInputTypedTestCases.validInputTestCases.map):
1733 (opaqueTanhNoArgument):
1735 (opaqueAllTypesTanh):
1737 (testSingleTypeCall):
1739 (opaqueTanhForSideEffects):
1740 (testSideEffect.let.testObject.valueOf):
1743 (testCSE.let.testObject.valueOf):
1746 (testDCE.let.testObject.valueOf):
1748 (testException.opaqueTanhWithException):
1751 2017-05-03 Keith Miller <keith_miller@apple.com>
1753 Array.prototype.sort should also allow a null comparator
1754 https://bugs.webkit.org/show_bug.cgi?id=171621
1756 Reviewed by Michael Saboff.
1758 Add test to make it less likely we revert to the incompatable behavior.
1759 Also, fix now incorrect tests.
1761 * ChakraCore/test/Array/array_sort.baseline-jsc:
1762 * stress/array-sort-bad-comparator.js:
1764 * stress/sort-null-comparator.js: Added.
1767 2017-05-03 Caitlin Potter <caitp@igalia.com>
1769 [JSC] remove unneeded asyncFunctionTests.yaml
1770 https://bugs.webkit.org/show_bug.cgi?id=171611
1772 Reviewed by Yusuke Suzuki.
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.
1777 * asyncFunctionTests.yaml: Removed.
1778 * stress/async-await-long-loop.js:
1779 * stress/async-await-throw-loop.js:
1781 2017-05-03 Keith Miller <keith_miller@apple.com>
1783 Different behaviour with the .sort(callback) method (unlike Firefox & Chrome)
1784 https://bugs.webkit.org/show_bug.cgi?id=47825
1786 Reviewed by Saam Barati.
1788 * stress/sorting-boolean-result-comparator.js: Added.
1791 2017-05-02 David Kilzer <ddkilzer@apple.com>
1793 check-webkit-style should keep JavaScript test functions in sync
1794 <https://webkit.org/b/171424>
1796 Reviewed by Joseph Pecoraro.
1798 This change makes shouldBe(), shouldNotBe(), shouldNotThrow()
1799 and shouldThrow() in sync with other copies of these methods.
1801 * stress/resources/standalone-pre.js:
1802 (shouldBe): Fix whitespace. Prefix 'exception' and 'quiet'
1803 variables with underscore.
1804 (shouldThrow): Fix whitespace.
1806 2017-04-30 Oleksandr Skachkov <gskachkov@gmail.com>
1808 We initialize functions too early in an eval
1809 https://bugs.webkit.org/show_bug.cgi?id=161099
1811 Reviewed by Saam Barati.
1813 * stress/eval-func-decl-with-let-const-class.js: Added.
1815 2017-04-30 Oleksandr Skachkov <gskachkov@gmail.com>
1817 [ES6]. Implement Annex B.3.3 function hoisting rules for eval
1818 https://bugs.webkit.org/show_bug.cgi?id=163208
1820 Reviewed by Saam Barati.
1822 * stress/eval-func-decl-block-scoping-reassign.js: Added.
1824 (throw.new.Error.f):
1826 * stress/eval-func-decl-block-with-remove.js: Added.
1830 * stress/eval-func-decl-block-with-var-and-remove.js: Added.
1837 * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
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.
1852 * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
1859 * stress/eval-func-decl-in-frozen-global.js: Added.
1864 * stress/eval-func-decl-in-global-of-eval.js: Added.
1870 * stress/eval-func-decl-in-global.js: Added.
1873 * stress/eval-func-decl-in-if.js: Added.
1875 * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
1885 * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
1891 * stress/variable-under-tdz-eval-tricky.js:
1895 2017-04-27 Mark Lam <mark.lam@apple.com>
1897 Fix some RELEASE_ASSERT failures caused by OutOfMemoryErrors.
1898 https://bugs.webkit.org/show_bug.cgi?id=171404
1899 <rdar://problem/31876178>
1901 Reviewed by Saam Barati.
1903 * stress/js-fixed-array-out-of-memory.js: Added.
1905 2017-04-27 David Kilzer <ddkilzer@apple.com>
1907 Enhance shouldBe()/shouldNotBe() to accept anonymous function arguments
1908 <https://webkit.org/b/171362>
1909 <rdar://problem/31867686>
1911 Reviewed by Joseph Pecoraro.
1913 * stress/resources/standalone-pre.js:
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
1923 2017-04-27 Yusuke Suzuki <utatane.tea@gmail.com>
1925 [JSC] Handle PhantomSpread in LoadVarargs as the same to the others
1926 https://bugs.webkit.org/show_bug.cgi?id=171262
1928 Reviewed by Saam Barati.
1930 * stress/spread-outer-create-rest.js: Added.
1936 2017-04-26 Saam Barati <sbarati@apple.com>
1938 Print Wasm function index in stack trace
1939 https://bugs.webkit.org/show_bug.cgi?id=171349
1941 Reviewed by JF Bastien.
1943 * wasm/function-tests/stack-trace.js: Added.
1944 (import.Builder.from.string_appeared_here.assert):
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):
1953 2017-04-26 Saam Barati <sbarati@apple.com>
1955 ASSERTION FAILED: inIndex != notFound in JSC::invalidParameterInSourceAppender()
1956 https://bugs.webkit.org/show_bug.cgi?id=170924
1957 <rdar://problem/31721052>
1959 Reviewed by Mark Lam.
1961 * stress/error-message-for-function-base-not-found.js: Added.
1964 * stress/error-messages-for-in-operator-should-not-crash.js: Added.
1967 2017-04-26 Keith Miller <keith_miller@apple.com>
1969 WebAssembly: Implement tier up
1970 https://bugs.webkit.org/show_bug.cgi?id=170134
1972 Reviewed by Filip Pizlo.
1974 * wasm/function-tests/trap-after-cross-instance-call.js:
1975 * wasm/tier-up/js-to-wasm.js: Added.
1977 * wasm/tier-up/wasm-to-wasm.js: Added.
1980 2017-04-26 Caitlin Potter <caitp@igalia.com>
1982 [JSC] Object.keys() must discard property names with no PropertyDescriptor
1983 https://bugs.webkit.org/show_bug.cgi?id=171291
1985 Reviewed by Yusuke Suzuki.
1987 * es6/Proxy_ownKeys_duplicates.js:
1988 * stress/proxy-own-keys.js:
1989 (let.handler.getOwnPropertyDescriptor):
1990 (let.handler.ownKeys):
1992 2017-04-25 Commit Queue <commit-queue@webkit.org>
1994 Unreviewed, rolling out r215476.
1995 https://bugs.webkit.org/show_bug.cgi?id=171304
1997 "It broke JSBench" (Requested by saamyjoon on #webkit).
2001 "[ES6]. Implement Annex B.3.3 function hoisting rules for
2003 https://bugs.webkit.org/show_bug.cgi?id=163208
2004 http://trac.webkit.org/changeset/215476
2006 2017-04-25 Saam Barati <sbarati@apple.com>
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>
2012 Reviewed by Sam Weinig.
2014 * stress/spread-optimized-properly.js: Added.
2018 (makeArrayIterator):
2021 (test.arr.__proto__.Symbol.iterator):
2022 (test.arr.Symbol.iterator):
2028 2017-04-25 Mark Lam <mark.lam@apple.com>
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>
2036 Follow up to rename a test file that was accidentally named wrongly.
2038 * stress/regress-170989.js: Copied from JSTests/stress/regress-170989.patch.
2039 * stress/regress-170989.patch: Removed.
2041 2017-04-25 Mark Lam <mark.lam@apple.com>
2043 Array.prototype.slice() should ensure that end >= begin.
2044 https://bugs.webkit.org/show_bug.cgi?id=170989
2045 <rdar://problem/31705652>
2047 Reviewed by Saam Barati.
2049 * stress/regress-170989.patch: Added.
2051 2017-04-25 Mark Lam <mark.lam@apple.com>
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>
2057 Reviewed by Saam Barati.
2059 * stress/regress-170990.js: Added.
2061 2017-04-25 Yusuke Suzuki <utatane.tea@gmail.com>
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
2066 Reviewed by JF Bastien.
2068 r213453 allows Wasm instances to expose indexed properties. We activate the tests.
2070 * wasm/js-api/test_Instance.js:
2073 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
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
2078 Reviewed by Saam Barati.
2080 * stress/async-await-syntax.js:
2083 2017-04-24 Yusuke Suzuki <utatane.tea@gmail.com>
2085 [JSC] Use JSFixedArray directly when using call_varargs
2086 https://bugs.webkit.org/show_bug.cgi?id=171057
2088 Reviewed by Saam Barati.
2090 * stress/spread-capture-rest.js: Added.
2095 * stress/spread-multi-layers.js: Added.
2101 * stress/spread-non-varargs.js: Added.
2106 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
2108 test262: test262/test/language/computed-property-names/class/static/getter-prototype.js
2109 https://bugs.webkit.org/show_bug.cgi?id=170897
2111 Reviewed by Saam Barati.
2115 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
2117 Address some FIXMEs in JavaScript tests for bugs that have been fixed
2118 https://bugs.webkit.org/show_bug.cgi?id=171191
2120 Reviewed by JF Bastien.
2122 * stress/proxy-is-extensible.js:
2124 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
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
2129 Reviewed by JF Bastien.
2131 * stress/inferred-names.js:
2134 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
2136 test262: test262/test/language/expressions/generators/yield-as-label.js
2137 https://bugs.webkit.org/show_bug.cgi?id=170979
2139 Reviewed by Saam Barati.
2141 * stress/async-await-module-reserved-word.js:
2142 * stress/async-await-reserved-word.js:
2143 Converge on "Cannot" instead of "Can't".
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.
2153 * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
2156 2017-04-23 Commit Queue <commit-queue@webkit.org>
2158 Unreviewed, rolling out r215674.
2159 https://bugs.webkit.org/show_bug.cgi?id=171212
2161 Possible unintended commit. This patch was on the wrong bug.
2162 (Requested by JoePeck on #webkit).
2166 "test262: test262/test/language/expressions/generators/yield-
2168 https://bugs.webkit.org/show_bug.cgi?id=170979
2169 http://trac.webkit.org/changeset/215674
2171 2017-04-23 Joseph Pecoraro <pecoraro@apple.com>
2173 test262: test262/test/built-ins/Number/prototype/toPrecision/nan.js
2174 https://bugs.webkit.org/show_bug.cgi?id=171197
2176 Reviewed by Saam Barati.
2180 2017-04-23 Joseph Pecoraro <pecoraro@apple.com>
2182 test262: test262/test/language/expressions/generators/yield-as-label.js
2183 https://bugs.webkit.org/show_bug.cgi?id=170979
2185 Reviewed by Saam Barati.
2187 * stress/async-await-module-reserved-word.js:
2188 * stress/async-await-reserved-word.js:
2189 Converge on "Cannot" instead of "Can't".
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.
2199 * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
2202 2017-04-23 Joseph Pecoraro <pecoraro@apple.com>
2204 test262: test262/test/built-ins/Number/parseFloat.js
2205 https://bugs.webkit.org/show_bug.cgi?id=171193
2207 Reviewed by Yusuke Suzuki.
2211 2017-04-22 JF Bastien <jfbastien@apple.com>
2213 WebAssembly: Module.exports, Module.imports, Module.customSections are wrong
2214 https://bugs.webkit.org/show_bug.cgi?id=171078
2216 Reviewed by Saam Barati.
2218 They're static properties of Module, not instance properties of a module.
2219 https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymoduleexports
2221 * wasm/js-api/Module.customSection.js:
2222 (assert.throws.WebAssembly.Module.customSections):
2224 (assert.throws.WebAssembly.Module.prototype.customSections): Deleted.
2225 * wasm/js-api/Module.exports.js:
2226 (assert.throws.WebAssembly.Module.exports):
2228 (assert.throws.WebAssembly.Module.prototype.exports): Deleted.
2229 * wasm/js-api/Module.imports.js:
2230 (assert.throws.WebAssembly.Module.imports):
2232 (assert.throws.WebAssembly.Module.prototype.imports): Deleted.
2234 2017-04-21 JF Bastien <jfbastien@apple.com>
2238 Unreviewed, Fil / Michael and I talked about it in the corridor. I
2239 just forgot to set verbose to false before commit.
2241 * wasm/stress/oom.js:
2243 2017-04-20 Yusuke Suzuki <utatane.tea@gmail.com>
2245 [JSC][FTL] FTL should support Arrayify
2246 https://bugs.webkit.org/show_bug.cgi?id=169596
2248 Reviewed by Saam Barati.
2250 * stress/arrayify.js: Added.
2253 (arrayifyContiguous):
2255 2017-04-20 Mark Lam <mark.lam@apple.com>
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>
2261 Reviewed by Saam Barati.
2263 * stress/regress-171079.js: Added.
2265 2017-04-15 Filip Pizlo <fpizlo@apple.com>
2267 Optimize SharedArrayBuffer in the DFG+FTL
2268 https://bugs.webkit.org/show_bug.cgi?id=164108
2270 Reviewed by Saam Barati.
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.
2276 * stress/SharedArrayBuffer-opt.js: Added.
2277 (string_appeared_here.switch):
2278 (string_appeared_here.str):
2282 (string_appeared_here.a.of.arrays.m.of.atomics):
2283 * stress/SharedArrayBuffer.js:
2285 2017-04-19 Mark Lam <mark.lam@apple.com>
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>
2291 Reviewed by Filip Pizlo.
2293 * stress/regress-170973.js: Added.
2295 2017-04-19 JF Bastien <jfbastien@apple.com>
2297 WebAssembly: limit slow memories
2298 https://bugs.webkit.org/show_bug.cgi?id=170825
2300 Reviewed by Saam Barati.
2303 * wasm/stress/oom.js: Added.
2304 (try.true.WebAssemblyMemoryMode):
2307 2017-04-19 JF Bastien <jfbastien@apple.com>
2309 WebAssembly: don't expose any WebAssembly JS object if JIT is off
2310 https://bugs.webkit.org/show_bug.cgi?id=170782
2312 Reviewed by Saam Barati.
2315 * wasm/noJIT/noJIT.js: Added.
2317 2017-04-18 Mark Lam <mark.lam@apple.com>
2319 r211670 broke double to int conversion.
2320 https://bugs.webkit.org/show_bug.cgi?id=170961
2321 <rdar://problem/31687696>
2323 Reviewed by Yusuke Suzuki.
2325 * microbenchmarks/double-to-int32.js: Added.
2326 * stress/to-int32-sensible2.js: Added.
2328 2017-04-18 Oleksandr Skachkov <gskachkov@gmail.com>
2330 [ES6]. Implement Annex B.3.3 function hoisting rules for eval
2331 https://bugs.webkit.org/show_bug.cgi?id=163208
2333 Reviewed by Saam Barati.
2335 * stress/eval-func-decl-block-scoping-reassign.js: Added.
2337 (throw.new.Error.f):
2339 * stress/eval-func-decl-block-with-remove.js: Added.
2343 * stress/eval-func-decl-block-with-var-and-remove.js: Added.
2350 * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
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.
2365 * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
2372 * stress/eval-func-decl-in-frozen-global.js: Added.
2377 * stress/eval-func-decl-in-global-of-eval.js: Added.
2383 * stress/eval-func-decl-in-global.js: Added.
2386 * stress/eval-func-decl-in-if.js: Added.
2388 * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
2398 * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
2404 * stress/variable-under-tdz-eval-tricky.js:
2408 2017-04-18 Filip Pizlo <fpizlo@apple.com>
2410 wasm/function-tests/memory-multiagent times out sometimes
2411 https://bugs.webkit.org/show_bug.cgi?id=170958
2413 Reviewed by Keith Miller.
2415 Add the ability to skip tests easily. Skip the test.
2418 * wasm/function-tests/memory-multiagent.js:
2420 2017-04-18 Saam Barati <sbarati@apple.com>
2422 Follow up to debug build stack overflow in test after r215453
2424 Rubber stamped by Mark Lam.
2426 * stress/call-apply-exponential-bytecode-size.js: Decrease the call
2427 size to prevent stack overflow errors on debug builds.
2429 2017-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
2431 [DFG] Convert ValueAdd(Int32, String) => MakeRope(ToString(Int32), String)
2432 https://bugs.webkit.org/show_bug.cgi?id=170943
2434 Reviewed by Geoffrey Garen.
2436 * microbenchmarks/number-to-string-with-add-empty.js: Added.
2439 * microbenchmarks/number-to-string-with-add-in-loop.js: Added.
2442 * microbenchmarks/number-to-string-with-add.js: Added.
2445 * stress/number-to-string-with-add.js: Added.
2448 (toStringLeftEmpty):
2449 (toStringRightEmpty):
2451 2017-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
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
2456 Reviewed by Filip Pizlo.
2458 * microbenchmarks/for-of-array.js: Added.
2461 2017-04-17 Saam Barati <sbarati@apple.com>
2463 BytecodeGenerator ".call" and ".apply" is exponential in nesting depth
2464 https://bugs.webkit.org/show_bug.cgi?id=139847
2465 <rdar://problem/19321122>
2467 Reviewed by Oliver Hunt.
2469 * stress/call-apply-exponential-bytecode-size.js: Added.
2474 (randomApplyOrCall):
2480 2017-04-17 Mark Lam <mark.lam@apple.com>
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>
2486 Reviewed by JF Bastien and Keith Miller.
2488 * stress/regress-170896.js: Added.
2490 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
2492 test262: test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js
2493 https://bugs.webkit.org/show_bug.cgi?id=170882
2495 Reviewed by Saam Barati.
2499 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
2501 test262: test262/test/built-ins/isNaN/toprimitive-not-callable-throws.js
2502 https://bugs.webkit.org/show_bug.cgi?id=170888
2504 Reviewed by Saam Barati.
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.
2512 * stress/symbol-toprimitive-errors.js: Added.
2513 Check for ToPrimitive TypeErrors.
2517 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
2519 test262: test262/test/language/expressions/tagged-template/template-object.js
2520 https://bugs.webkit.org/show_bug.cgi?id=170878
2522 Reviewed by Saam Barati.
2524 * stress/array-length-not-writable.js: Added.
2528 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
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
2533 Reviewed by Saam Barati.
2535 * ChakraCore/test/es5/enumerable.baseline-jsc:
2538 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
2540 test262: test262/test/built-ins/Date/prototype/Symbol.toPrimitive/name.js
2541 https://bugs.webkit.org/show_bug.cgi?id=170884
2543 Reviewed by Yusuke Suzuki.
2547 2017-04-15 Joseph Pecoraro <pecoraro@apple.com>
2549 test262: test262/test/language/global-code/new.target-arrow.js
2550 https://bugs.webkit.org/show_bug.cgi?id=170872
2552 Reviewed by Saam Barati.
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.
2560 * stress/new-target-syntax-errors.js:
2561 Cover the arrow function in global code cases.
2564 * ChakraCore/test/es6/globalLambdaNewTargetSyntaxError.baseline-jsc:
2565 We now pass with an expected SyntaxError. Our error message is different.
2569 2017-04-14 Saam Barati <sbarati@apple.com>
2571 ParseInt intrinsic in DFG backend doesn't properly flush its operands
2572 https://bugs.webkit.org/show_bug.cgi?id=170865
2574 Reviewed by Mark Lam and Geoffrey Garen.
2576 * stress/parse-int-intrinsic-dfg-backend-flush.js: Added.
2580 2017-04-14 Caitlin Potter <caitp@igalia.com>
2582 [JSC] use ExpressionErrorClassifier for AwaitExpression operand
2583 https://bugs.webkit.org/show_bug.cgi?id=170844
2585 Reviewed by Saam Barati.
2587 * stress/regress-170732.js: Added.
2589 2017-04-14 Oleksandr Skachkov <gskachkov@gmail.com>
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
2594 Reviewed by Yusuke Suzuki.
2596 * stress/object-number-properties.js:
2598 2017-04-13 Yusuke Suzuki <utatane.tea@gmail.com>
2600 [JSC] Date.parse should accept wider range of representation
2601 https://bugs.webkit.org/show_bug.cgi?id=170720
2603 Reviewed by Darin Adler.
2605 * stress/date-relaxed.js: Added.
2609 2017-04-13 Mark Lam <mark.lam@apple.com>
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>
2615 Reviewed by Filip Pizlo.
2617 * stress/regress-170661.js: Added.
2619 2017-04-13 JF Bastien <jfbastien@apple.com>
2621 WebAssembly: manage memory better
2622 https://bugs.webkit.org/show_bug.cgi?id=170628
2624 Reviewed by Keith Miller, Michael Saboff.
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
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.
2644 (testInstanceNoMemory):
2645 (testInstanceNoMax):
2647 * wasm/utilities.js: move a utility here.
2649 2017-04-12 Joseph Pecoraro <pecoraro@apple.com>
2651 test262: test262/test/built-ins/NativeErrors/EvalError/proto.js
2652 https://bugs.webkit.org/show_bug.cgi?id=170668
2654 Reviewed by Keith Miller.
2657 * ChakraCore/test/Lib/error.baseline-jsc: Added.
2658 This test does not match the spec.
2662 2017-04-12 Joseph Pecoraro <pecoraro@apple.com>
2664 test262: test262/test/language/literals/regexp/u-dec-esc.js
2665 https://bugs.webkit.org/show_bug.cgi?id=170687
2667 Reviewed by Michael Saboff.
2671 2017-04-11 Michael Saboff <msaboff@apple.com>
2673 Implement Object.isFrozen() and Object.isSealed() per ECMA spec
2674 https://bugs.webkit.org/show_bug.cgi?id=170753
2676 Reviewed by Mark Lam.
2678 Added JSC baseline and enabled defineIndexProperty test.
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
2686 * ChakraCore/test/es5/defineIndexProperty.baseline-jsc: Added.
2688 2017-04-11 Joseph Pecoraro <pecoraro@apple.com>
2690 test262: test262/test/annexB/language/comments/multi-line-html-close.js
2691 https://bugs.webkit.org/show_bug.cgi?id=170648
2693 Reviewed by Keith Miller.
2697 2017-04-11 Joseph Pecoraro <pecoraro@apple.com>
2699 test262: test262/test/built-ins/Array/S15.4.3_A2.2.js
2700 https://bugs.webkit.org/show_bug.cgi?id=170652
2702 Reviewed by Michael Saboff.
2704 * stress/native-constructors-length.js: Added.
2705 (assertLengthDescriptorAttributes):
2706 Add a quick test for the length properties of all native constructors.
2708 * ChakraCore/test/es5/enumerable.baseline-jsc:
2709 Rebaseline expectations for this test.
2713 2017-04-10 Keith Miller <keith_miller@apple.com>
2715 WebAssembly: Update spec tests
2716 https://bugs.webkit.org/show_bug.cgi?id=170683
2718 Rubber-stamped by JF Bastien.
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:
2732 2017-04-09 Joseph Pecoraro <pecoraro@apple.com>
2734 test262: test262/test/annexB/language/expressions/object/__proto__-fn-name.js
2735 https://bugs.webkit.org/show_bug.cgi?id=170650
2737 Reviewed by Saam Barati.
2739 * stress/inferred-names.js:
2742 2017-04-09 Joseph Pecoraro <pecoraro@apple.com>
2744 test262: test262/test/annexB/language/literals/regexp/identity-escape.js
2745 https://bugs.webkit.org/show_bug.cgi?id=170651
2747 Reviewed by Saam Barati.
2751 2017-04-07 Michael Saboff <msaboff@apple.com>
2753 Fix and enable ChakraCore/test/es6/ES6Function_bugs.js after r215072
2754 https://bugs.webkit.org/show_bug.cgi?id=170580
2756 Reviewed by JF Bastien.
2758 Commented out subtest that expects defineProperty("length") to a getter on a
2759 sealed function shouldn't throw.
2762 * ChakraCore/test/es6/ES6Function_bugs.js:
2764 2017-04-06 Michael Saboff <msaboff@apple.com>
2766 Cannot Object.seal() or Object.freeze() global "this"
2767 https://bugs.webkit.org/show_bug.cgi?id=170549
2769 Reviewed by Mark Lam.
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
2777 * ChakraCore/test/LetConst/dop.baseline-jsc: Added JSC specific expected output.
2778 * ChakraCore/test/LetConst/dop1.baseline-jsc: Added JSC specific expected output.
2780 2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
2782 test262: ES2017 test progressions need updated expectations (arguments.caller removed)
2783 https://bugs.webkit.org/show_bug.cgi?id=170536
2785 Reviewed by Mark Lam.
2788 After r208867 the tests are out of date and are now expected to fail.
2790 2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
2792 test262: Final rebaseline of existing tests, a few tests have started failing
2793 https://bugs.webkit.org/show_bug.cgi?id=170538
2795 Reviewed by Mark Lam.
2798 These tests started failing a while ago. Mark them as legitmate failures.
2800 2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
2802 test262: Rebaseline expectations for now passing tests
2803 https://bugs.webkit.org/show_bug.cgi?id=170532
2805 Reviewed by Ryosuke Niwa.
2808 Update expectations for tests we are now passing.
2810 2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
2812 test262: module test progressions need updated expectations (@@iterator changes)
2813 https://bugs.webkit.org/show_bug.cgi?id=170535
2815 Reviewed by Saam Barati.
2818 After r212430 the tests are out of date and are now expected to fail.
2820 2017-04-05 Michael Saboff <msaboff@apple.com>
2822 Unreviewed rollout of r214642 as the test still intermittently fails.
2824 Disabled ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js.
2828 2017-04-05 Michael Saboff <msaboff@apple.com>
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>
2834 Rubber-stamped by Saam Barati.
2836 The original bug was fixed in: https://trac.webkit.org/changeset/214714
2837 I'm just adding another test for good measure.
2839 * stress/double-array-to-array-storage.js: Added.
2842 2017-04-05 Keith Miller <keith_miller@apple.com>
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
2847 Reviewed by Mark Lam.
2849 * wasm/function-tests/trap-after-cross-instance-call.js: Added.
2850 (b.new.WebAssembly.Memory):
2851 (importObject.foo.bar):
2852 (wasmFrameCountFromError):
2854 2017-03-16 Yusuke Suzuki <utatane.tea@gmail.com>
2856 [JSC] Generate TemplateObjects at linking time
2857 https://bugs.webkit.org/show_bug.cgi?id=169743
2859 Reviewed by Keith Miller.
2861 * stress/template-string-tags-eval.js: Added.
2865 2017-04-04 Mark Lam <mark.lam@apple.com>
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>
2871 Reviewed by Saam Barati.
2873 * stress/regress-170473.js: Added.
2875 2017-04-03 Mark Lam <mark.lam@apple.com>
2877 Fix incorrect capacity delta calculation reported in SparseArrayValueMap::add().
2878 https://bugs.webkit.org/show_bug.cgi?id=170412
2879 <rdar://problem/29697336>
2881 Reviewed by Filip Pizlo.
2883 * stress/regress-170412.js: Added.
2885 2017-04-03 Keith Miller <keith_miller@apple.com>
2887 WebAssembly: Update spec tests
2888 https://bugs.webkit.org/show_bug.cgi?id=170361
2890 Rubber-stamped by Saam Barati.
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.
2897 * wasm/import-spec-tests.rb:
2898 * wasm/spec-harness.js: Added.
2899 (import.string_appeared_here.then):
2902 (let.assert_unreached):
2903 * wasm/spec-harness/index.js: Added.
2909 (Result.prototype.isError):
2914 (assert_soft_invalid):
2920 (assert_unlinkable):
2921 (assert_uninstantiable):
2925 (assert_exhaustion):
2927 (assert_return_nan):
2928 * wasm/spec-harness/testharness.css: Added.
2934 (table#results th:first-child,):
2935 (table#results th:last-child,):
2936 (table#results.assertions th:last-child,):
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):
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):
2979 (is_service_worker):
2992 * wasm/spec-harness/testharnessreport.js: Added.
2993 * wasm/spec-harness/wasm-constants.js: Added.
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):
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.
3045 (require.else._registry.name):
3070 (instr.else.switch.case.0.f):
3071 (instr.else.switch.case.1.f.1):
3072 (instr.else.switch.case.2.f.2):
3095 (module_with_var_opt):
3102 (_registry.string_appeared_here):
3142 (array1_of_genarray):
3143 (array2_of_genarray):
3144 (array3_of_genarray):
3165 (advance_to_closing):
3166 (advance_to_non_alpha):
3196 (caml_array_concat):
3202 (caml_int32_float_of_bits):
3203 (caml_int32_bits_of_float):
3204 (caml_classify_float):
3208 (caml_copysign_float):
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):
3222 (finish_formatting):
3224 (caml_int64_format):
3225 (caml_format_float):
3259 (bits_of_float.to_nat):
3270 (param_format_of_ignored_format):
3271 (buffer_check_size):
3273 (buffer_add_string):
3279 (set while.set var):
3280 (set while.set else):
3286 (bprint_ignored_flag):
3290 (bprint_iconv_flag):
3292 (bprint_altint_fmt):
3293 (bprint_fconv_flag):
3295 (string_of_formatting_lit):
3296 (string_of_formatting_gen):
3297 (bprint_char_literal):
3298 (bprint_string_literal):
3300 (int_of_custom_arity):
3306 (fmtty_of_formatting_gen):
3309 (fmtty_of_padding_fmtty):
3310 (fmtty_of_precision_fmtty):
3313 (type_ignored_param_one):
3315 (type_ignored_format_substitution):
3319 (fix_int_precision):
3320 (string_to_caml_string):
3326 (convert_nativeint):
3333 (else.switch.k.prime):
3334 (else.switch.else.):
3335 (else.switch.else.k.prime.1):
3339 (make_string_padding):
3340 (make_int_padding_precision):
3345 (failwith_message.k):
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):
3359 (incompatible_flag):
3362 (parse_after_precision):
3363 (else.parse_literal):
3364 (parse_after_padding):
3370 (compute_float_conv):
3371 (search_subformat_end):
3375 (else.switch.case.99.char_format):
3376 (else.switch.scan_format):
3383 (fail_single_percent):
3384 (parse_char_set_after_char):
3385 (parse_char_set_content):
3386 (parse_char_set_start):
3390 (fmt_ebb_of_string):
3391 (format_of_string_fmtty):
3392 (format_of_string_format):
3394 (caml_ml_open_descriptor_in):
3395 (caml_ml_open_descriptor_out):
3398 (caml_ml_output_char):
3400 (caml_ml_input_char):
3401 (caml_ml_out_channels_list):
3407 (caml_new_lex_engine):
3409 (caml_obj_truncate):
3410 (caml_lazy_make_forward):
3411 (caml_update_dummy):
3416 (caml_greaterequal):
3419 (caml_get_public_method):
3420 (caml_parse_engine):
3421 (caml_set_parser_trace):
3422 (js_string_of_char):
3424 (caml_create_string):
3425 (caml_string_compare):
3431 (caml_string_of_char_array):
3432 (caml_is_printable):
3433 (caml_string_get16):
3434 (caml_string_get32):
3506 (mutability.get if):
3514 (import_kind.get if):
3521 (export_kind.get if):
3548 (encode.patch_gap32):
3549 (encode.value_type):
3550 (encode.stack_type):
3553 (encode.table_type):
3554 (encode.memory_type):
3555 (encode.global_type):
3561 (encode.type_section):
3563 (encode.import_section):
3565 (encode.func_section):
3567 (encode.table_section):
3569 (encode.memory_section):
3571 (encode.global_section):
3572 (encode.export_kind):
3574 (encode.export_section):
3575 (encode.start_section):
3580 (encode.code_section):
3582 (encode.table_segment):
3583 (encode.elem_section):
3584 (encode.memory_segment):
3589 (print_nan_significand_digits):
3593 (Make.canonicalize_nan):
3594 (Make.determine_binary_nan):
3595 (Make.determine_unary_nan):
3618 (Make.of_signless_string):
3629 (pp_force_break_line):
3635 (enqueue_string_as):
3642 (pp_set_print_tags):
3644 (pp_get_print_tags):
3647 (pp_get_formatter_tag_functions):
3648 (pp_set_formatter_tag_functions):
3664 (pp_print_if_newline):
3678 (pp_over_max_boxes):
3679 (pp_get_ellipsis_text):
3681 (pp_set_max_indent):
3682 (pp_get_max_indent):
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):
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):
3706 (formatter_of_out_channel):
3707 (formatter_of_buffer):
3708 (flush_str_formatter):
3709 (flush_buf_formatter):
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):
3758 (output_formatting_lit):