src/cm/media/js/lib/yui/yui_3.10.3/build/timers/timers-debug.js
author gibus
Tue, 11 Feb 2014 12:33:25 +0100
changeset 572 93383e54e042
parent 525 89ef5ed3c48b
permissions -rw-r--r--
Font size for piwik optout iframe.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('timers', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
 * Provides utilities for timed asynchronous callback execution.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 * Y.soon is a setImmediate/process.nextTick/setTimeout wrapper.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 * @module timers
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 * @author Steven Olmsted
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
var YGLOBAL = Y.config.global,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
     * Y.soon accepts a callback function.  The callback function will be called
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
     * once in a future turn of the JavaScript event loop.  If the function
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
     * requires a specific execution context or arguments, wrap it with Y.bind.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
     * Y.soon returns an object with a cancel method.  If the cancel method is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
     * called before the callback function, the callback function won't be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
     * called.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
     * @method soon
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
     * @for YUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
     * @param {Function} callbackFunction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
     * @return {Object} An object with a cancel method.  If the cancel method is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
     * called before the callback function, the callback function won't be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
     * called.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    soon = function (callbackFunction) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
        var canceled;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
        soon._asynchronizer(function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
            // Some asynchronizers may provide their own cancellation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
            // methods such as clearImmediate or clearTimeout but some
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
            // asynchronizers do not.  For simplicity, cancellation is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
            // entirely handled here rather than wrapping the other methods.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
            // All asynchronizers are expected to always call this anonymous
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
            // function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
            if (!canceled) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
                callbackFunction();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
        return {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
            cancel: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
                canceled = 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
 * The asynchronizer is the internal mechanism which will call a function
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
 * asynchronously.  This property is exposed as a convenient way to define a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
 * different asynchronizer implementation without having to rewrite the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
 * entire Y.soon interface.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
 * @method _asynchronizer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
 * @for soon
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
 * @param {Function} callbackFunction The function to call asynchronously.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
 * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
 * Since Y.soon is likely to have many differing asynchronizer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
 * implementations, this property should be set to identify which
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
 * implementation is in use.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
 * @property _impl
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
 * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
 * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
// Check for a native or already polyfilled implementation of setImmediate.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
if ('setImmediate' in YGLOBAL) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
    soon._asynchronizer = function (callbackFunction) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
        setImmediate(callbackFunction);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
    soon._impl = 'setImmediate';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
// Check for process and process.nextTick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
else if (('process' in YGLOBAL) && ('nextTick' in process)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
    soon._asynchronizer = process.nextTick;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
    soon._impl = 'nextTick';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
// The most widely supported asynchronizer is setTimeout so we use that as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
// the fallback.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    soon._asynchronizer = function (callbackFunction) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
        setTimeout(callbackFunction, 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
    soon._impl = 'setTimeout';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
Y.soon = soon;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
}, '3.10.3', {"requires": ["yui-base"]});