1
// From device.js

the if statement borks under JScript, fix is to use logically equivalent version using DeMorgan's law

1
2
3
4
5
6
7
8
PhoneGap.addConstructor = function(func) {
    var state = document.readyState;
    if (state != 'loaded' && state != 'complete')
        PhoneGap._constructors.push(func);
    else
        func();
};

everything below is not recognized in JScript 3.0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(function() {
    var timer = setInterval(function() {
        var state = document.readyState;
        if (state != 'loaded' && state != 'complete')
            return;
        clearInterval(timer);
        while (PhoneGap._constructors.length > 0) {
            var constructor = PhoneGap._constructors.shift();
            try {
                constructor();
            } catch(e) {
                if (typeof(debug['log']) == 'function')
                    debug.log("Failed to run constructor: " + e.message);
                else
                    alert("Failed to run constructor: " + e.message);
            }
        }
    }, 1);
})();