On Sat, Oct 18, 2014 at 7:56 PM, Erik Arvidsson <[email protected]> wrote:

> I don't think an access check is needed. The function and prototype are
> both new objects created by the class definition evaluation.
>
I see, you are right. This code is scary though. I would like this
invariant (that the function and prototype are new, just created objects to
be very prominent in the code.

Here is an idea:
- Split Runtime_Define class into Runtime_CreateClassPrototype and
Runtime_DefineClassConstructor.
- Pass class prototype into both Runtime_DefineConstructor and into
EmitClassDefineProperties (the latter will assume class prototype and
constructor are both on the stack. In fact, you probably do not need a
constructor there at all).

WDYT?

On Oct 18, 2014 5:05 AM, <[email protected]> wrote:
>
>>
>> https://codereview.chromium.org/639123009/diff/1/src/ia32/
>> full-codegen-ia32.cc
>> File src/ia32/full-codegen-ia32.cc (right):
>>
>> https://codereview.chromium.org/639123009/diff/1/src/ia32/
>> full-codegen-ia32.cc#newcode2446
>> src/ia32/full-codegen-ia32.cc:2446: __
>> CallRuntime(Runtime::kSetProperty, 4);
>> On 2014/10/18 08:30:33, Dmitry Lomov (chromium) wrote:
>>
>>> You should use StoreIC here (see EmitKeyedPropertyAssignment for how
>>>
>> it is done)
>>
>> s/Keyed/Named/ of course.
>> Maybe given how much runtime calling is going on here anyway, maybe it's
>> not worth it yet to install ICs here
>>
>> https://codereview.chromium.org/639123009/
>>
>

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to