Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
cordova-plugin-local-notifications
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nabil Sadki
cordova-plugin-local-notifications
Commits
77b6cffe
Commit
77b6cffe
authored
Jan 11, 2018
by
Sebastián Katzer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added polyfill for Array.from
parent
69810d81
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
79 additions
and
0 deletions
+79
-0
local-notification-util.js
www/local-notification-util.js
+79
-0
No files found.
www/local-notification-util.js
View file @
77b6cffe
...
...
@@ -469,3 +469,82 @@ if (typeof Object.assign != 'function') {
return
target
;
};
}
// Production steps of ECMA-262, Edition 6, 22.1.2.1
// Reference: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
if
(
!
Array
.
from
)
{
Array
.
from
=
(
function
()
{
var
toStr
=
Object
.
prototype
.
toString
;
var
isCallable
=
function
(
fn
)
{
return
typeof
fn
===
'function'
||
toStr
.
call
(
fn
)
===
'[object Function]'
;
};
var
toInteger
=
function
(
value
)
{
var
number
=
Number
(
value
);
if
(
isNaN
(
number
))
{
return
0
;
}
if
(
number
===
0
||
!
isFinite
(
number
))
{
return
number
;
}
return
(
number
>
0
?
1
:
-
1
)
*
Math
.
floor
(
Math
.
abs
(
number
));
};
var
maxSafeInteger
=
Math
.
pow
(
2
,
53
)
-
1
;
var
toLength
=
function
(
value
)
{
var
len
=
toInteger
(
value
);
return
Math
.
min
(
Math
.
max
(
len
,
0
),
maxSafeInteger
);
};
// The length property of the from method is 1.
return
function
from
(
arrayLike
/*, mapFn, thisArg */
)
{
// 1. Let C be the this value.
var
C
=
this
;
// 2. Let items be ToObject(arrayLike).
var
items
=
Object
(
arrayLike
);
// 3. ReturnIfAbrupt(items).
if
(
arrayLike
==
null
)
{
throw
new
TypeError
(
"Array.from requires an array-like object - not null or undefined"
);
}
// 4. If mapfn is undefined, then let mapping be false.
var
mapFn
=
arguments
.
length
>
1
?
arguments
[
1
]
:
void
undefined
;
var
T
;
if
(
typeof
mapFn
!==
'undefined'
)
{
// 5. else
// 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
if
(
!
isCallable
(
mapFn
))
{
throw
new
TypeError
(
'Array.from: when provided, the second argument must be a function'
);
}
// 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
if
(
arguments
.
length
>
2
)
{
T
=
arguments
[
2
];
}
}
// 10. Let lenValue be Get(items, "length").
// 11. Let len be ToLength(lenValue).
var
len
=
toLength
(
items
.
length
);
// 13. If IsConstructor(C) is true, then
// 13. a. Let A be the result of calling the [[Construct]] internal method of C with an argument list containing the single item len.
// 14. a. Else, Let A be ArrayCreate(len).
var
A
=
isCallable
(
C
)
?
Object
(
new
C
(
len
))
:
new
Array
(
len
);
// 16. Let k be 0.
var
k
=
0
;
// 17. Repeat, while k < len… (also steps a - h)
var
kValue
;
while
(
k
<
len
)
{
kValue
=
items
[
k
];
if
(
mapFn
)
{
A
[
k
]
=
typeof
T
===
'undefined'
?
mapFn
(
kValue
,
k
)
:
mapFn
.
call
(
T
,
kValue
,
k
);
}
else
{
A
[
k
]
=
kValue
;
}
k
+=
1
;
}
// 18. Let putStatus be Put(A, "length", len, true).
A
.
length
=
len
;
// 20. Return A.
return
A
;
};
}());
}
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