| Summary: | Implement switch statements in WebAssembly | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Sukolsak Sakshuwong <sukolsak> | ||||
| Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> | ||||
| Status: | RESOLVED FIXED | ||||||
| Severity: | Normal | CC: | commit-queue, fpizlo, ggaren, sukolsak | ||||
| Priority: | P2 | ||||||
| Version: | WebKit Nightly Build | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Bug Depends on: | |||||||
| Bug Blocks: | 146064 | ||||||
| Attachments: |
|
||||||
|
Description
Sukolsak Sakshuwong
2015-09-10 17:02:39 PDT
Created attachment 260972 [details]
Patch
Here's what buildSwitch() in the LLVM IR generator will look like:
void buildSwitch(LValue expression, const Vector<int64_t>& cases, const Vector<LBasicBlock>& targets, LBasicBlock defaultTarget)
{
Vector<FTL::SwitchCase> switchCases;
switchCases.reserveInitialCapacity(cases.size());
for (size_t i = 0; i < cases.size(); ++i)
switchCases.uncheckedAppend(FTL::SwitchCase(m_out.constInt32(static_cast<int32_t>(cases[i])), targets[i]));
m_out.switchInstruction(expression, switchCases, defaultTarget, FTL::Weight());
}
Comment on attachment 260972 [details]
Patch
r=me
Comment on attachment 260972 [details] Patch Clearing flags on attachment: 260972 Committed r189599: <http://trac.webkit.org/changeset/189599> All reviewed patches have been landed. Closing bug. |