The behavior is correct. Field my_prop transitioned from integer mode to "tagged" (any) mode. The IC stays monomorphic since it just generalized the field type.
Regards, Toon On Tue, Jan 12, 2016 at 2:03 PM nexus226 <[email protected]> wrote: > Hi v8-folks, > > I have some doubts regarding inline cache behaviour. If you don't mind I > would like to ask some questions here. > > The example is as below: > ``` > $ cat simple.js > function foo(_prop) { > this.my_prop = _prop; > } > > var a = new foo(3); // expects this.my_prop to be premonomorphic > var b = new foo(5); // expects this.my_prop to be monomorphic > var c = new foo(7); // expects to stay in monomorphic > var d = new foo("hello"); // expects this.my_prop to be polymorphic > ``` > > I run the example with trace_ic option. > ``` > $ ./d8 --trace_ic simple.js | grep my_prop > [StoreIC in ~foo+64 at simple.js:2 (0->.) #my_prop] > [StoreIC in ~foo+64 at simple.js:2 (.->1) #my_prop] > [StoreIC in ~foo+64 at simple.js:2 (^->1) #my_prop] > ``` > > In the above example, how come inline cache of my_prop is changed as below? > 1. UNINITIALIZED(0) -> PREMONOMORPHIC(.) > 2. PREMONOMORPHIC(.) -> MONOMORPHIC(1) > 3. suddenly PROTOTYPE_FAILURE(^) -> MONOMORPHIC(1) > > I don't understand the transition from step 2 to step 3. As far as I > understood, it has to be MONOMORPHIC -> POLYMORPHIC. > Is this correct behaviour? > > Best regards, > Honggyu > > -- > -- > 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. > -- -- 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.
