Yes, my change does include the case with shallow cloning.

--Florian

On Fri, Dec 18, 2009 at 10:44 AM, Kasper Lund <[email protected]> wrote:

> Florian,
>
> If your latest changes to this area already covers this, I'd be happy
> to not submit this.
>
> Cheers,
> Kasper
>
> On Fri, Dec 18, 2009 at 10:43 AM,  <[email protected]> wrote:
> > Reviewers: fschneider,
> >
> > Description:
> > Avoid using full array literal boilerplate cloning for non-nested
> > literals that are too big to hit the fast case.
> >
> > Please review this at http://codereview.chromium.org/503055
> >
> > SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/
> >
> > Affected files:
> >  M     bleeding_edge/src/ia32/codegen-ia32.cc
> >
> >
> > Index: bleeding_edge/src/ia32/codegen-ia32.cc
> > ===================================================================
> > --- bleeding_edge/src/ia32/codegen-ia32.cc      (revision 3488)
> > +++ bleeding_edge/src/ia32/codegen-ia32.cc      (working copy)
> > @@ -4443,10 +4443,13 @@
> >   // Clone the boilerplate object.
> >   int length = node->values()->length();
> >   Result clone;
> > -  if (node->depth() == 1 &&
> > -      length <= FastCloneShallowArrayStub::kMaximumLength) {
> > -    FastCloneShallowArrayStub stub(length);
> > -    clone = frame_->CallStub(&stub, 1);
> > +  if (node->depth() == 1) {
> > +    if (length <= FastCloneShallowArrayStub::kMaximumLength) {
> > +      FastCloneShallowArrayStub stub(length);
> > +      clone = frame_->CallStub(&stub, 1);
> > +    } else {
> > +      clone =
> frame_->CallRuntime(Runtime::kCloneShallowLiteralBoilerplate,
> > 1);
> > +    }
> >   } else {
> >     clone = frame_->CallRuntime(Runtime::kCloneLiteralBoilerplate, 1);
> >   }
> >
> >
> >
>

-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to