Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Belgian Biodiversity Platform
yeti
Commits
339e20c1
Commit
339e20c1
authored
Jul 03, 2012
by
Julien Cigar
Browse files
added Array.prototype.lastIndexOf
parent
d52eabae
Changes
1
Hide whitespace changes
Inline
Side-by-side
core.js
View file @
339e20c1
...
@@ -21,15 +21,14 @@
...
@@ -21,15 +21,14 @@
/***********************************************************************
/***********************************************************************
Global Javascript objects
Global Javascript objects
************************************************************************/
/*
Workarounds for browsers which do not natively support some ECMA
Workarounds for browsers which do not natively support some ECMA
*
standards.
standards.
*
*
Although extending the DOM is a very bad idea and considered "evil",
Although extending the DOM is a very bad idea and considered "evil",
*
adding missing methods to global javascript objects is perfectly
adding missing methods to global javascript objects is perfectly
*
acceptable.
acceptable.
*/
***********************************************************************
*/
/* This is taken from https://developer.mozilla.org and is exactly the
/* This is taken from https://developer.mozilla.org and is exactly the
* one specified in ECMA-262.
* one specified in ECMA-262.
...
@@ -38,15 +37,20 @@
...
@@ -38,15 +37,20 @@
if
(
!
Array
.
prototype
.
indexOf
)
{
if
(
!
Array
.
prototype
.
indexOf
)
{
Array
.
prototype
.
indexOf
=
function
(
searchElement
/*, fromIndex */
)
{
Array
.
prototype
.
indexOf
=
function
(
searchElement
/*, fromIndex */
)
{
"
use strict
"
;
"
use strict
"
;
if
(
this
==
null
)
{
if
(
this
==
null
)
{
throw
new
TypeError
();
throw
new
TypeError
();
}
}
var
t
=
Object
(
this
);
var
t
=
Object
(
this
);
var
len
=
t
.
length
>>>
0
;
var
len
=
t
.
length
>>>
0
;
if
(
len
===
0
)
{
if
(
len
===
0
)
{
return
-
1
;
return
-
1
;
}
}
var
n
=
0
;
var
n
=
0
;
if
(
arguments
.
length
>
0
)
{
if
(
arguments
.
length
>
0
)
{
n
=
Number
(
arguments
[
1
]);
n
=
Number
(
arguments
[
1
]);
if
(
n
!=
n
)
{
// shortcut for verifying if it's NaN
if
(
n
!=
n
)
{
// shortcut for verifying if it's NaN
...
@@ -55,17 +59,63 @@
...
@@ -55,17 +59,63 @@
n
=
(
n
>
0
||
-
1
)
*
Math
.
floor
(
Math
.
abs
(
n
));
n
=
(
n
>
0
||
-
1
)
*
Math
.
floor
(
Math
.
abs
(
n
));
}
}
}
}
if
(
n
>=
len
)
{
if
(
n
>=
len
)
{
return
-
1
;
return
-
1
;
}
}
var
k
=
n
>=
0
?
n
:
Math
.
max
(
len
-
Math
.
abs
(
n
),
0
);
var
k
=
n
>=
0
?
n
:
Math
.
max
(
len
-
Math
.
abs
(
n
),
0
);
for
(;
k
<
len
;
k
++
)
{
for
(;
k
<
len
;
k
++
)
{
if
(
k
in
t
&&
t
[
k
]
===
searchElement
)
{
if
(
k
in
t
&&
t
[
k
]
===
searchElement
)
{
return
k
;
return
k
;
}
}
}
}
return
-
1
;
}
}
/* This is taken from https://developer.mozilla.org and is exactly the
* one specified in ECMA-262.
*/
if
(
!
Array
.
prototype
.
lastIndexOf
)
{
Array
.
prototype
.
lastIndexOf
=
function
(
searchElement
/*, fromIndex*/
)
{
"
use strict
"
;
if
(
this
==
null
)
{
throw
new
TypeError
();
}
var
t
=
Object
(
this
);
var
len
=
t
.
length
>>>
0
;
if
(
len
===
0
)
{
return
-
1
;
return
-
1
;
}
}
var
n
=
len
;
if
(
arguments
.
length
>
1
)
{
n
=
Number
(
arguments
[
1
]);
if
(
n
!=
n
)
{
n
=
0
;
}
else
if
(
n
!=
0
&&
n
!=
(
1
/
0
)
&&
n
!=
-
(
1
/
0
))
{
n
=
(
n
>
0
||
-
1
)
*
Math
.
floor
(
Math
.
abs
(
n
));
}
}
var
k
=
n
>=
0
?
Math
.
min
(
n
,
len
-
1
)
:
len
-
Math
.
abs
(
n
);
for
(;
k
>=
0
;
k
--
)
{
if
(
k
in
t
&&
t
[
k
]
===
searchElement
)
{
return
k
;
}
}
return
-
1
;
};
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment