[Webkit-unassigned] [Bug 144956] [ES6] Implement ES6 arrow function syntax. Arrow function specific features. Lexical bind of this

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jul 31 13:44:31 PDT 2015


https://bugs.webkit.org/show_bug.cgi?id=144956

--- Comment #87 from GSkachkov <gskachkov at gmail.com> ---
Comment on attachment 257762
  --> https://bugs.webkit.org/attachment.cgi?id=257762
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=257762&action=review

>> Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:953
>> +            fixEdge<FinalObjectUse>(node->child1());
> 
> This should probably be:
> fixEdge<KnownCellUse>(node->child1())

Done

>> Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:954
>> +            node->convertToIdentity();
> 
> This seems wrong. This should be removed.

Done

>> Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:1275
>> +            m_insertionSet.insertNode(m_indexInBlock, SpecNone, Check, node->origin,
> 
> What is this doing?
> I think it should be removed.

Ohh, I've removed only line 1274, without 1275 it raises error during tests

>> Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:843
>> +        case NewArrowFunction: 
> 
> Lets focus on getting this properly working in the DFG before spending time getting the allocation sinking phase right.
> Allocation sinking is only run when we compile into the FTL. That said, some basic comments below:
> 
> We will need to change this a bit to incorporate the bound this of the arrow function.
> Look below at FunctionActivationPLoc/FunctionExecutablePLoc. Maybe you would
> create a FunctionBoundThisPLoc.

I've added new FunctionBoundThisPLoc

>> Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:988
>> +            if (target && target->isFunctionAllocation())
> 
> isFunctionAllocation() should return true for NewArrowFunction.

Done

>> Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:990
>> +            else
> 
> Why would this ever not be a function? That seems like it'd be wrong.

It is the same as for GetScope, except instead of FunctionActivationPLoc is used FunctionActivationPLoc

>> Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:4599
>> +void SpeculativeJIT::compileNewFunction(Node* node, NodeType nodeType)
> 
> You don't need NodeType as a parameter to this function. Node will have that information.

Done

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20150731/3ed8d662/attachment-0001.html>


More information about the webkit-unassigned mailing list