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 [email protected]
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
-~----------~----~----~----~------~----~------~--~---