There is an observable bug in the interpreter whereby the shallow copy of values only occurred after all arguments to a call had been evaluated.
Created attachment 349045 [details] Patch
Comment on attachment 349045 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=349045&action=review > Tools/WebGPUShadingLanguageRI/Evaluator.js:325 > + let result = EBuffer.allowAllocation(() => node.func.implementation(callArguments, node)); I'm confused. Where do the thunks get evaluated? I expected this patch to move code around, but instead it appears to be deleting code?
Comment on attachment 349045 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=349045&action=review >> Tools/WebGPUShadingLanguageRI/Evaluator.js:325 >> + let result = EBuffer.allowAllocation(() => node.func.implementation(callArguments, node)); > > I'm confused. Where do the thunks get evaluated? I expected this patch to move code around, but instead it appears to be deleting code? Got it. Looks good.
Comment on attachment 349045 [details] Patch Clearing flags on attachment: 349045 Committed r235753: <https://trac.webkit.org/changeset/235753>
All reviewed patches have been landed. Closing bug.
<rdar://problem/44194725>
Migrated to https://github.com/gpuweb/WHLSL/issues/41