RESOLVED FIXED 179762
[FTL] NewArrayBuffer should be sinked if it is only used for spreading
https://bugs.webkit.org/show_bug.cgi?id=179762
Summary [FTL] NewArrayBuffer should be sinked if it is only used for spreading
Yusuke Suzuki
Reported 2017-11-16 05:33:23 PST
[FTL] NewArrayBuffer should be sinked if it is only used for spreading
Attachments
Patch (54.77 KB, patch)
2017-11-16 05:33 PST, Yusuke Suzuki
no flags
Patch (56.22 KB, patch)
2017-11-16 16:41 PST, Yusuke Suzuki
no flags
Patch (72.69 KB, patch)
2017-11-17 00:04 PST, Yusuke Suzuki
no flags
Patch (74.82 KB, patch)
2017-11-17 00:36 PST, Yusuke Suzuki
no flags
Patch (79.70 KB, patch)
2017-11-17 05:48 PST, Yusuke Suzuki
no flags
Archive of layout-test-results from ews104 for mac-elcapitan-wk2 (2.90 MB, application/zip)
2017-11-17 07:54 PST, EWS Watchlist
no flags
Patch (83.28 KB, patch)
2017-11-17 17:48 PST, Yusuke Suzuki
no flags
Patch (83.28 KB, patch)
2017-11-17 20:14 PST, Yusuke Suzuki
no flags
Patch (89.21 KB, patch)
2017-12-01 03:30 PST, Yusuke Suzuki
no flags
Patch (93.44 KB, patch)
2017-12-08 02:21 PST, Yusuke Suzuki
saam: review+
Yusuke Suzuki
Comment 1 2017-11-16 05:33:43 PST
Build Bot
Comment 2 2017-11-16 06:16:38 PST
Comment on attachment 327056 [details] Patch Attachment 327056 [details] did not pass jsc-ews (mac): Output: http://webkit-queues.webkit.org/results/5258059 New failing tests: wasm.yaml/wasm/function-tests/memory-access-past-4gib.js.wasm-slow-memory stress/array-indexof-structure-change-convert.js.ftl-no-cjit-small-pool stress/generator-fib-ftl-and-array.js.ftl-eager-no-cjit-b3o1 microbenchmarks/string-get-by-val-out-of-bounds-insane.js.ftl-eager-no-cjit-b3o1 microbenchmarks/string-get-by-val-out-of-bounds.js.default microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-eager wasm.yaml/wasm/function-tests/memory-access-past-4gib.js.default-wasm stress/array-indexof-structure-change-convert.js.ftl-eager-no-cjit stress/array-indexof-structure-change-convert.js.ftl-no-cjit-no-inline-validate stress/array-indexof-structure-change-convert.js.ftl-eager-no-cjit-b3o1 microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-no-cjit-b3o1 microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-eager-no-cjit-b3o1 wasm.yaml/wasm/function-tests/memory-access-past-4gib.js.wasm-no-cjit-yes-tls-context wasm.yaml/wasm/function-tests/memory-access-past-4gib.js.wasm-no-call-ic microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-no-cjit-no-inline-validate microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-eager-no-cjit stress/array-indexof-structure-change-convert.js.default microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-no-cjit-small-pool microbenchmarks/string-get-by-val-out-of-bounds-insane.js.ftl-eager microbenchmarks/string-get-by-val-out-of-bounds-insane.js.ftl-eager-no-cjit microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-no-cjit-validate-sampling-profiler stress/exception-in-to-property-key-should-be-handled-early.js.ftl-eager-no-cjit-b3o1 stress/array-indexof-structure-change-convert.js.ftl-no-cjit-validate-sampling-profiler wasm.yaml/wasm/function-tests/memory-access-past-4gib.js.wasm-no-tls-context stress/array-indexof-structure-change-convert.js.ftl-eager stress/generator-fib-ftl-and-array.js.ftl-eager-no-cjit microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-no-cjit-no-put-stack-validate stress/array-indexof-structure-change-convert.js.ftl-no-cjit-no-put-stack-validate
Yusuke Suzuki
Comment 3 2017-11-16 16:39:27 PST
(In reply to Build Bot from comment #2) > Comment on attachment 327056 [details] > Patch > > Attachment 327056 [details] did not pass jsc-ews (mac): > Output: http://webkit-queues.webkit.org/results/5258059 > > New failing tests: > wasm.yaml/wasm/function-tests/memory-access-past-4gib.js.wasm-slow-memory > stress/array-indexof-structure-change-convert.js.ftl-no-cjit-small-pool > stress/generator-fib-ftl-and-array.js.ftl-eager-no-cjit-b3o1 > microbenchmarks/string-get-by-val-out-of-bounds-insane.js.ftl-eager-no-cjit- > b3o1 > microbenchmarks/string-get-by-val-out-of-bounds.js.default > microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-eager > wasm.yaml/wasm/function-tests/memory-access-past-4gib.js.default-wasm > stress/array-indexof-structure-change-convert.js.ftl-eager-no-cjit > stress/array-indexof-structure-change-convert.js.ftl-no-cjit-no-inline- > validate > stress/array-indexof-structure-change-convert.js.ftl-eager-no-cjit-b3o1 > microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-no-cjit-b3o1 > microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-eager-no-cjit-b3o1 > wasm.yaml/wasm/function-tests/memory-access-past-4gib.js.wasm-no-cjit-yes- > tls-context > wasm.yaml/wasm/function-tests/memory-access-past-4gib.js.wasm-no-call-ic > microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-no-cjit-no-inline- > validate > microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-eager-no-cjit > stress/array-indexof-structure-change-convert.js.default > microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-no-cjit-small-pool > microbenchmarks/string-get-by-val-out-of-bounds-insane.js.ftl-eager > microbenchmarks/string-get-by-val-out-of-bounds-insane.js.ftl-eager-no-cjit > microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-no-cjit-validate- > sampling-profiler > stress/exception-in-to-property-key-should-be-handled-early.js.ftl-eager-no- > cjit-b3o1 > stress/array-indexof-structure-change-convert.js.ftl-no-cjit-validate- > sampling-profiler > wasm.yaml/wasm/function-tests/memory-access-past-4gib.js.wasm-no-tls-context > stress/array-indexof-structure-change-convert.js.ftl-eager > stress/generator-fib-ftl-and-array.js.ftl-eager-no-cjit > microbenchmarks/string-get-by-val-out-of-bounds.js.ftl-no-cjit-no-put-stack- > validate > stress/array-indexof-structure-change-convert.js.ftl-no-cjit-no-put-stack- > validate Lol, it figures out the existing bug :)
Yusuke Suzuki
Comment 4 2017-11-16 16:41:19 PST
Yusuke Suzuki
Comment 5 2017-11-17 00:04:52 PST
EWS Watchlist
Comment 6 2017-11-17 00:07:00 PST
Attachment 327153 [details] did not pass style-queue: ERROR: Source/WTF/wtf/FixedPointCombinator.h:38: This { should be at the end of the previous line [whitespace/braces] [4] Total errors found: 1 in 20 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 7 2017-11-17 00:36:05 PST
EWS Watchlist
Comment 8 2017-11-17 00:38:41 PST
Attachment 327154 [details] did not pass style-queue: ERROR: Source/WTF/wtf/FixedPointCombinator.h:38: This { should be at the end of the previous line [whitespace/braces] [4] Total errors found: 1 in 21 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 9 2017-11-17 05:48:43 PST
EWS Watchlist
Comment 10 2017-11-17 05:50:38 PST
Attachment 327164 [details] did not pass style-queue: ERROR: Source/WTF/wtf/FixedPointCombinator.h:38: This { should be at the end of the previous line [whitespace/braces] [4] Total errors found: 1 in 24 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 11 2017-11-17 07:54:12 PST
Comment on attachment 327164 [details] Patch Attachment 327164 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.webkit.org/results/5274421 New failing tests: http/tests/appcache/offline-access.html
EWS Watchlist
Comment 12 2017-11-17 07:54:14 PST
Created attachment 327171 [details] Archive of layout-test-results from ews104 for mac-elcapitan-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews104 Port: mac-elcapitan-wk2 Platform: Mac OS X 10.11.6
Yusuke Suzuki
Comment 13 2017-11-17 17:48:43 PST
EWS Watchlist
Comment 14 2017-11-17 17:52:13 PST
Attachment 327289 [details] did not pass style-queue: ERROR: Source/WTF/wtf/FixedPointCombinator.h:38: This { should be at the end of the previous line [whitespace/braces] [4] Total errors found: 1 in 27 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 15 2017-11-17 18:29:17 PST
Comment on attachment 327289 [details] Patch Attachment 327289 [details] did not pass jsc-ews (mac): Output: http://webkit-queues.webkit.org/results/5284537 New failing tests: stress/phantom-new-array-buffer-forward-varargs2.js.ftl-no-cjit-no-put-stack-validate stress/phantom-new-array-buffer-forward-varargs2.js.ftl-eager-no-cjit stress/phantom-new-array-buffer-forward-varargs2.js.ftl-eager-no-cjit-b3o1 stress/phantom-new-array-buffer-forward-varargs2.js.ftl-no-cjit-validate-sampling-profiler
Yusuke Suzuki
Comment 16 2017-11-17 20:14:15 PST
EWS Watchlist
Comment 17 2017-11-17 20:17:00 PST
Attachment 327300 [details] did not pass style-queue: ERROR: Source/WTF/wtf/FixedPointCombinator.h:38: This { should be at the end of the previous line [whitespace/braces] [4] Total errors found: 1 in 27 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 18 2017-11-26 01:34:19 PST
Ping?
Saam Barati
Comment 19 2017-11-26 16:51:09 PST
Comment on attachment 327300 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=327300&action=review r- because I think I found a bug w.r.t double representation. I'd like to see some tests for that if it's indeed a bug, and I'll re-review. Also some various other comments. > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:5110 > + if (use->child1()->op() == PhantomNewArrayBuffer) > + lengthCheck = m_out.speculateAdd(length, m_out.constInt32(use->child1()->numConstants())); This should be done as the "startLength" calculation above. You should also probably add an overflow check to that math to be extra safe. > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:5144 > + if (hasDouble(use->child1()->indexingType())) > + value = bitwise_cast<int64_t>(data[i].asNumber()); This is wrong. Please add a test for it. We're allocating a contiguous array here. We can not store doubles into it. > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:5150 > + index = m_out.add(index, m_out.constIntPtr(1)); Let's pull this out of the loop and make it: index = m_out.add(index, m_out.constIntPtr(use->child1()->numConstants()) > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:7064 > + if (target->op() == PhantomNewArrayBuffer) > + length = m_out.constIntPtr(target->numConstants()); I think you can just add this to "numNonSpreadParameters". You may want to rename that variable to something like "staticArgumentCount" or something similar. > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:7219 > + value = bitwise_cast<int64_t>(data[i].asNumber()); ditto this is wrong. Please add tests. > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:7905 > + if (target->op() == PhantomNewArrayBuffer) { > + spreadLengths.append(m_out.constInt32(target->numConstants())); > + return; This could be considered as part of numberOfStaticArguments. > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:7953 > + if (hasDouble(target->indexingType())) > + value = bitwise_cast<int64_t>(data[i].asNumber()); Ditto. This is wrong. Please add a test > Source/WTF/wtf/FixedPointCombinator.h:33 > +struct FixedPointCombinator { I'm not really a fan of this name. There is noting requiring Function to reach a fixed point. Is there a reason you chose this name? I think a better name would have something referencing recursion in it.
Yusuke Suzuki
Comment 20 2017-11-28 08:56:39 PST
Comment on attachment 327300 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=327300&action=review >> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:5110 >> + lengthCheck = m_out.speculateAdd(length, m_out.constInt32(use->child1()->numConstants())); > > This should be done as the "startLength" calculation above. You should also probably add an overflow check to that math to be extra safe. Nice, fixed. >> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:5144 >> + value = bitwise_cast<int64_t>(data[i].asNumber()); > > This is wrong. Please add a test for it. We're allocating a contiguous array here. We can not store doubles into it. Nice, I'll fix this with a test. >> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:5150 >> + index = m_out.add(index, m_out.constIntPtr(1)); > > Let's pull this out of the loop and make it: > index = m_out.add(index, m_out.constIntPtr(use->child1()->numConstants()) Fixed. >> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:7064 >> + length = m_out.constIntPtr(target->numConstants()); > > I think you can just add this to "numNonSpreadParameters". You may want to rename that variable to something like "staticArgumentCount" or something similar. Sounds nice. Add target->numConstant() to numNonSpreadParameters, and rename it to staticArgumentCount. >> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:7219 >> + value = bitwise_cast<int64_t>(data[i].asNumber()); > > ditto this is wrong. Please add tests. Fixed. >> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:7905 >> + return; > > This could be considered as part of numberOfStaticArguments. Nice. Fixed. >> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:7953 >> + value = bitwise_cast<int64_t>(data[i].asNumber()); > > Ditto. This is wrong. Please add a test Fixed. >> Source/WTF/wtf/FixedPointCombinator.h:33 >> +struct FixedPointCombinator { > > I'm not really a fan of this name. There is noting requiring Function to reach a fixed point. > > Is there a reason you chose this name? > > I think a better name would have something referencing recursion in it. I simply named it from this definition https://en.wikipedia.org/wiki/Fixed-point_combinator. But better name seems fine. I renamed this to `RecurableLambda`.
Yusuke Suzuki
Comment 21 2017-12-01 03:30:48 PST
EWS Watchlist
Comment 22 2017-12-01 03:34:22 PST
Attachment 328083 [details] did not pass style-queue: ERROR: Source/WTF/wtf/RecurableLambda.h:38: This { should be at the end of the previous line [whitespace/braces] [4] Total errors found: 1 in 30 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 23 2017-12-01 04:20:41 PST
Comment on attachment 328083 [details] Patch Attachment 328083 [details] did not pass jsc-ews (mac): Output: http://webkit-queues.webkit.org/results/5441764 New failing tests: stress/math-pow-with-never-NaN-exponent.js.ftl-eager stress/math-pow-with-never-NaN-exponent.js.ftl-eager-no-cjit-b3o1 stress/math-pow-with-never-NaN-exponent.js.ftl-eager-no-cjit microbenchmarks/call-spread-apply.js.ftl-eager-no-cjit-b3o1 stress/phantom-new-array-buffer-osr-exit.js.ftl-no-cjit-no-put-stack-validate stress/phantom-new-array-buffer-osr-exit.js.default stress/redundant-array-bounds-checks-addition.js.ftl-eager-no-cjit stress/get-by-val-out-of-bounds-basics.js.ftl-eager-no-cjit-b3o1 stress/redundant-array-bounds-checks-addition-skip-first.js.ftl-eager-no-cjit stress/phantom-new-array-buffer-osr-exit.js.ftl-no-cjit-no-inline-validate stress/ftl-try-catch-varargs-call-throws.js.ftl-eager-no-cjit-b3o1 stress/redundant-array-bounds-checks-addition-skip-first.js.ftl-eager-no-cjit-b3o1 stress/phantom-new-array-buffer-osr-exit.js.ftl-eager stress/phantom-new-array-buffer-osr-exit.js.ftl-no-cjit-b3o1 stress/pow-with-never-NaN-exponent.js.ftl-eager-no-cjit-b3o1 stress/redundant-array-bounds-checks-addition.js.ftl-eager-no-cjit-b3o1 stress/phantom-new-array-buffer-osr-exit.js.ftl-eager-no-cjit-b3o1 microbenchmarks/call-spread-apply.js.ftl-eager-no-cjit stress/phantom-new-array-buffer-osr-exit.js.ftl-no-cjit-validate-sampling-profiler stress/get-by-val-out-of-bounds-basics.js.ftl-eager-no-cjit stress/ftl-try-catch-varargs-call-throws.js.ftl-eager stress/pow-with-never-NaN-exponent.js.ftl-eager stress/pow-with-never-NaN-exponent.js.ftl-eager-no-cjit stress/redundant-array-bounds-checks-unchecked-addition.js.ftl-eager-no-cjit-b3o1 stress/ftl-try-catch-varargs-call-throws.js.ftl-eager-no-cjit stress/phantom-new-array-buffer-osr-exit.js.ftl-eager-no-cjit stress/redundant-array-bounds-checks-unchecked-addition.js.ftl-eager-no-cjit
Yusuke Suzuki
Comment 24 2017-12-08 02:21:11 PST
Yusuke Suzuki
Comment 25 2017-12-16 08:19:37 PST
Ping?
Saam Barati
Comment 26 2017-12-17 16:17:47 PST
Comment on attachment 328801 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=328801&action=review r=me Some comments and suggestions for tests for the cases where you may not have them. > Source/WTF/ChangeLog:8 > + We add RecurableLambda<>. This can take a lambda and offer a way This should be "RecursableLambda" everywhere in this patch. Both upper and lower case. > Source/JavaScriptCore/dfg/DFGArgumentsEliminationPhase.cpp:850 > + if (canConvertToStaticLoadStores(candidate)) { do you have tests for both this being true and false? > Source/JavaScriptCore/dfg/DFGValidate.cpp:763 > + VALIDATE((node), node->child1()->op() == PhantomCreateRest || node->child1()->op() == PhantomNewArrayBuffer); You need to update the Spread rule below to say we support Spread(PhantomNewArrayBuffer). It'd be great if you can write a test for it too. Maybe you can by looking at the code I added to originally support Spread(PhantomCreateRest) > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:5194 > + // Because resulted array from NewArrayWithSpread is always contiguous, we should not generate value > + // in Double form even if PhantomNewArrayBuffer's indexingType is ArrayWithDouble. Did you add tests for this? > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:5196 > + m_out.store64(m_out.constInt64(value), m_out.baseIndex(heap, storage, index, JSValue(), i * sizeof(JSValue))); Maybe it's worth being paranoid about (i*sizeof(JSValue)) overflowing here? We can just crash if it does. > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:5316 > + setJSValue(frozenPointer(m_node->child1()->cellOperand())); nice! Please add a test if possible as state in comment about Validation phase. > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:7296 > + auto emitArgumentsFromRightToLeft = recurableLambda([&](auto self, Node* target) -> void { Do you have tests that mix all three kinds of phantoms in a single call? PhantomCreateRest, PhantomNewArrayBuffer, and just normal values. If not please add. > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:7323 > + jit.subPtr(CCallHelpers::TrustedImmPtr(static_cast<size_t>(1)), scratchGPR2); I would vote for doing this outside the loop and adjusting the store below to do the right thing. > Source/WTF/wtf/RecurableLambda.h:33 > +class RecurableLambda { make this: RecursableLambda > Source/WTF/wtf/RecurableLambda.h:51 > +decltype(auto) recurableLambda(Functor&& f) make this: recursableLambda
Yusuke Suzuki
Comment 27 2017-12-18 02:34:43 PST
Comment on attachment 328801 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=328801&action=review Thank you! >> Source/JavaScriptCore/dfg/DFGArgumentsEliminationPhase.cpp:850 >> + if (canConvertToStaticLoadStores(candidate)) { > > do you have tests for both this being true and false? Yeah. JSTests/stress/phantom-new-array-buffer-forward-varargs.js includes both true and false cases. >> Source/JavaScriptCore/dfg/DFGValidate.cpp:763 >> + VALIDATE((node), node->child1()->op() == PhantomCreateRest || node->child1()->op() == PhantomNewArrayBuffer); > > You need to update the Spread rule below to say we support Spread(PhantomNewArrayBuffer). It'd be great if you can write a test for it too. Maybe you can by looking at the code I added to originally support Spread(PhantomCreateRest) Oh, nice. Added the test supporting `Spread(PhantomNewArrayBuffer)`. >> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:5194 >> + // in Double form even if PhantomNewArrayBuffer's indexingType is ArrayWithDouble. > > Did you add tests for this? Yes new-array-with-spread-double-new-array-buffer.js tests this behavior. >> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:5196 >> + m_out.store64(m_out.constInt64(value), m_out.baseIndex(heap, storage, index, JSValue(), i * sizeof(JSValue))); > > Maybe it's worth being paranoid about (i*sizeof(JSValue)) overflowing here? We can just crash if it does. Added. >> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:5316 >> + setJSValue(frozenPointer(m_node->child1()->cellOperand())); > > nice! Please add a test if possible as state in comment about Validation phase. Added spread-escapes-but-new-array-buffer-does-not.js. >> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:7296 >> + auto emitArgumentsFromRightToLeft = recurableLambda([&](auto self, Node* target) -> void { > > Do you have tests that mix all three kinds of phantoms in a single call? PhantomCreateRest, PhantomNewArrayBuffer, and just normal values. If not please add. Yes, call-varargs-spread-new-array-buffer2.js is the thing. >> Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:7323 >> + jit.subPtr(CCallHelpers::TrustedImmPtr(static_cast<size_t>(1)), scratchGPR2); > > I would vote for doing this outside the loop and adjusting the store below to do the right thing. OK, fixed. >> Source/WTF/wtf/RecurableLambda.h:33 >> +class RecurableLambda { > > make this: RecursableLambda Fixed. >> Source/WTF/wtf/RecurableLambda.h:51 >> +decltype(auto) recurableLambda(Functor&& f) > > make this: recursableLambda Fixed.
Yusuke Suzuki
Comment 28 2017-12-18 03:49:39 PST
Radar WebKit Bug Importer
Comment 29 2017-12-18 03:51:19 PST
Ryan Haddad
Comment 30 2017-12-18 13:45:26 PST
Debug JSC bots are hitting an assertion on 59 tests after this change: ASSERTION FAILED: spread->child1()->op() == PhantomCreateRest https://build.webkit.org/builders/Apple%20High%20Sierra%20Debug%20JSC%20%28Tests%29/builds/390
Saam Barati
Comment 31 2017-12-18 13:49:48 PST
(In reply to Ryan Haddad from comment #30) > Debug JSC bots are hitting an assertion on 59 tests after this change: > ASSERTION FAILED: spread->child1()->op() == PhantomCreateRest > https://build.webkit.org/builders/ > Apple%20High%20Sierra%20Debug%20JSC%20%28Tests%29/builds/390 Yusuke, looks like you need to update PreciseLocalClobberize.
Saam Barati
Comment 32 2017-12-18 13:53:53 PST
(In reply to Saam Barati from comment #31) > (In reply to Ryan Haddad from comment #30) > > Debug JSC bots are hitting an assertion on 59 tests after this change: > > ASSERTION FAILED: spread->child1()->op() == PhantomCreateRest > > https://build.webkit.org/builders/ > > Apple%20High%20Sierra%20Debug%20JSC%20%28Tests%29/builds/390 > > Yusuke, looks like you need to update PreciseLocalClobberize. I will fix.
Saam Barati
Comment 33 2017-12-18 14:21:15 PST
(In reply to Saam Barati from comment #32) > (In reply to Saam Barati from comment #31) > > (In reply to Ryan Haddad from comment #30) > > > Debug JSC bots are hitting an assertion on 59 tests after this change: > > > ASSERTION FAILED: spread->child1()->op() == PhantomCreateRest > > > https://build.webkit.org/builders/ > > > Apple%20High%20Sierra%20Debug%20JSC%20%28Tests%29/builds/390 > > > > Yusuke, looks like you need to update PreciseLocalClobberize. > > I will fix. Should be fixed in: https://trac.webkit.org/changeset/226081/webkit
Yusuke Suzuki
Comment 34 2017-12-18 17:50:45 PST
(In reply to Saam Barati from comment #33) > (In reply to Saam Barati from comment #32) > > (In reply to Saam Barati from comment #31) > > > (In reply to Ryan Haddad from comment #30) > > > > Debug JSC bots are hitting an assertion on 59 tests after this change: > > > > ASSERTION FAILED: spread->child1()->op() == PhantomCreateRest > > > > https://build.webkit.org/builders/ > > > > Apple%20High%20Sierra%20Debug%20JSC%20%28Tests%29/builds/390 > > > > > > Yusuke, looks like you need to update PreciseLocalClobberize. > > > > I will fix. > > Should be fixed in: > https://trac.webkit.org/changeset/226081/webkit Oops! Thank you!
Note You need to log in before you can comment on or make changes to this bug.