WIP - add extractor, generate snippet_data
This commit is contained in:
75
node_modules/raf/index.js
generated
vendored
Normal file
75
node_modules/raf/index.js
generated
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
var now = require('performance-now')
|
||||
, root = typeof window === 'undefined' ? global : window
|
||||
, vendors = ['moz', 'webkit']
|
||||
, suffix = 'AnimationFrame'
|
||||
, raf = root['request' + suffix]
|
||||
, caf = root['cancel' + suffix] || root['cancelRequest' + suffix]
|
||||
|
||||
for(var i = 0; !raf && i < vendors.length; i++) {
|
||||
raf = root[vendors[i] + 'Request' + suffix]
|
||||
caf = root[vendors[i] + 'Cancel' + suffix]
|
||||
|| root[vendors[i] + 'CancelRequest' + suffix]
|
||||
}
|
||||
|
||||
// Some versions of FF have rAF but not cAF
|
||||
if(!raf || !caf) {
|
||||
var last = 0
|
||||
, id = 0
|
||||
, queue = []
|
||||
, frameDuration = 1000 / 60
|
||||
|
||||
raf = function(callback) {
|
||||
if(queue.length === 0) {
|
||||
var _now = now()
|
||||
, next = Math.max(0, frameDuration - (_now - last))
|
||||
last = next + _now
|
||||
setTimeout(function() {
|
||||
var cp = queue.slice(0)
|
||||
// Clear queue here to prevent
|
||||
// callbacks from appending listeners
|
||||
// to the current frame's queue
|
||||
queue.length = 0
|
||||
for(var i = 0; i < cp.length; i++) {
|
||||
if(!cp[i].cancelled) {
|
||||
try{
|
||||
cp[i].callback(last)
|
||||
} catch(e) {
|
||||
setTimeout(function() { throw e }, 0)
|
||||
}
|
||||
}
|
||||
}
|
||||
}, Math.round(next))
|
||||
}
|
||||
queue.push({
|
||||
handle: ++id,
|
||||
callback: callback,
|
||||
cancelled: false
|
||||
})
|
||||
return id
|
||||
}
|
||||
|
||||
caf = function(handle) {
|
||||
for(var i = 0; i < queue.length; i++) {
|
||||
if(queue[i].handle === handle) {
|
||||
queue[i].cancelled = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = function(fn) {
|
||||
// Wrap in a new function to prevent
|
||||
// `cancel` potentially being assigned
|
||||
// to the native rAF function
|
||||
return raf.call(root, fn)
|
||||
}
|
||||
module.exports.cancel = function() {
|
||||
caf.apply(root, arguments)
|
||||
}
|
||||
module.exports.polyfill = function(object) {
|
||||
if (!object) {
|
||||
object = root;
|
||||
}
|
||||
object.requestAnimationFrame = raf
|
||||
object.cancelAnimationFrame = caf
|
||||
}
|
||||
Reference in New Issue
Block a user