Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9345284
array-from.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
array-from.js
View Options
'use strict'
;
var
bind
=
require
(
'../internals/function-bind-context'
);
var
call
=
require
(
'../internals/function-call'
);
var
toObject
=
require
(
'../internals/to-object'
);
var
callWithSafeIterationClosing
=
require
(
'../internals/call-with-safe-iteration-closing'
);
var
isArrayIteratorMethod
=
require
(
'../internals/is-array-iterator-method'
);
var
isConstructor
=
require
(
'../internals/is-constructor'
);
var
lengthOfArrayLike
=
require
(
'../internals/length-of-array-like'
);
var
createProperty
=
require
(
'../internals/create-property'
);
var
getIterator
=
require
(
'../internals/get-iterator'
);
var
getIteratorMethod
=
require
(
'../internals/get-iterator-method'
);
var
$Array
=
Array
;
// `Array.from` method implementation
// https://tc39.es/ecma262/#sec-array.from
module
.
exports
=
function
from
(
arrayLike
/* , mapfn = undefined, thisArg = undefined */
)
{
var
O
=
toObject
(
arrayLike
);
var
IS_CONSTRUCTOR
=
isConstructor
(
this
);
var
argumentsLength
=
arguments
.
length
;
var
mapfn
=
argumentsLength
>
1
?
arguments
[
1
]
:
undefined
;
var
mapping
=
mapfn
!==
undefined
;
if
(
mapping
)
mapfn
=
bind
(
mapfn
,
argumentsLength
>
2
?
arguments
[
2
]
:
undefined
);
var
iteratorMethod
=
getIteratorMethod
(
O
);
var
index
=
0
;
var
length
,
result
,
step
,
iterator
,
next
,
value
;
// if the target is not iterable or it's an array with the default iterator - use a simple case
if
(
iteratorMethod
&&
!
(
this
===
$Array
&&
isArrayIteratorMethod
(
iteratorMethod
)))
{
iterator
=
getIterator
(
O
,
iteratorMethod
);
next
=
iterator
.
next
;
result
=
IS_CONSTRUCTOR
?
new
this
()
:
[];
for
(;
!
(
step
=
call
(
next
,
iterator
)).
done
;
index
++
)
{
value
=
mapping
?
callWithSafeIterationClosing
(
iterator
,
mapfn
,
[
step
.
value
,
index
],
true
)
:
step
.
value
;
createProperty
(
result
,
index
,
value
);
}
}
else
{
length
=
lengthOfArrayLike
(
O
);
result
=
IS_CONSTRUCTOR
?
new
this
(
length
)
:
$Array
(
length
);
for
(;
length
>
index
;
index
++
)
{
value
=
mapping
?
mapfn
(
O
[
index
],
index
)
:
O
[
index
];
createProperty
(
result
,
index
,
value
);
}
}
result
.
length
=
index
;
return
result
;
};
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jul 4, 3:16 PM (5 d, 3 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3394322
Attached To
rDWAPPS Web applications
Event Timeline
Log In to Comment