Next step would be to submit a patch (preferably with unit tests)
http://www.prototypejs.org/contribute

- kangax

On Mar 28, 9:13 pm, koozdra <[EMAIL PROTECTED]> wrote:
> Thanks Ken that looks great.  What is the next step?  Can this change
> make into the next version of prototype?
>
> - Dimitri
>
> On Mar 28, 12:07 pm, Ken Snyder <[EMAIL PROTECTED]> wrote:
>
> > koozdra wrote:
> > > Thanks for the quick reply.
>
> > > I ran some tests in ruby:
>
> > > array = [1,2,3,4]
> > > p array.insert(-3, 'one', 'two')
> > > array = [1,2,3,4]
> > > p array.insert(-1, 'one', 'two')
> > > array = [1,2,3,4]
> > > p array.insert(0, 'one', 'two')
> > > array = [1,2,3,4]
> > > p array.insert(1, 'one', 'two')
> > > array = [1,2,3,4]
> > > p array.insert(10, 'one', 'two')
>
> > > output:
> > > [1, 2, "one", "two", 3, 4]
> > > [1, 2, 3, 4, "one", "two"]
> > > ["one", "two", 1, 2, 3, 4]
> > > [1, "one", "two", 2, 3, 4]
> > > [1, 2, 3, 4, nil, nil, nil, nil, nil, nil, "one", "two"]
>
> > > when the index is negative and of greater length than the array, ruby
> > > throws an index out of bounds exception.
>
> > Based on that info, below is a revised method.  On FF2 it seems to behave 
> > the same as your Ruby examples.  I made an index of -5 in your example work 
> > the same as 0.
>
> > - Ken
>
> > Array.prototype.insert = function() {
> >   var args = $A(arguments), index = args.shift();
> >   index += index < 0 ? this.length : 0;
> >   if (index > this.length || index < -1)
> >     throw new Error('Index out of bounds.');
> >   args = [this[index], 0].concat(args);
> >   Array.prototype.splice.apply(this, args);}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype: Core" group.
To post to this group, send email to prototype-core@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/prototype-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to