diff --git a/build/minify.js b/build/minify.js index b34a61c1f..f0438d78c 100755 --- a/build/minify.js +++ b/build/minify.js @@ -26,7 +26,7 @@ var closureId = '23cf67d0f0b979d97631fc108a2a43bb82225994'; /** The Git object ID of `uglifyjs.tar.gz` */ - var uglifyId = 'a934fb18f8fa2768c6a68de44b6e035fe96a268b'; + var uglifyId = 'e28c7df12b160865f9be9fd24ffda31b2d60b079'; /** The path of the directory that is the base of the repository */ var basePath = fs.realpathSync(path.join(__dirname, '..')); diff --git a/vendor/platform.js/platform.js b/vendor/platform.js/platform.js index c0eb3b0d0..82869ff14 100644 --- a/vendor/platform.js/platform.js +++ b/vendor/platform.js/platform.js @@ -584,10 +584,11 @@ // detect stubborn layout engines if (layout == 'iCab' && parseFloat(version) > 3) { layout = ['WebKit']; - } else if (data = - /Opera/.test(name) && 'Presto' || - /\b(?:Midori|Nook|Safari)\b/i.test(ua) && 'WebKit' || - !layout && /\bMSIE\b/i.test(ua) && (/^Mac/.test(os) ? 'Tasman' : 'Trident')) { + } else if ((data = + /Opera/.test(name) && 'Presto' || + /\b(?:Midori|Nook|Safari)\b/i.test(ua) && 'WebKit' || + !layout && /\bMSIE\b/i.test(ua) && (/^Mac/.test(os) ? 'Tasman' : 'Trident') + )) { layout = [data]; } // leverage environment features @@ -629,12 +630,12 @@ } } // detect Adobe AIR - else if (getClassOf(data = window.runtime) == 'ScriptBridgingProxyObject') { + else if (getClassOf((data = window.runtime)) == 'ScriptBridgingProxyObject') { name = 'Adobe AIR'; os = data.flash.system.Capabilities.os; } // detect PhantomJS - else if (getClassOf(data = window.phantom) == 'RuntimeObject') { + else if (getClassOf((data = window.phantom)) == 'RuntimeObject') { name = 'PhantomJS'; version = (data = data.version || null) && (data.major + '.' + data.minor + '.' + data.patch); } @@ -654,9 +655,10 @@ } // detect prerelease phases if (version && (data = - /(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(version) || - /(?:alpha|beta)(?: ?\d)?/i.exec(ua + ';' + (useFeatures && nav.appMinorVersion)) || - /\bMinefield\b/i.test(ua) && 'a')) { + /(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(version) || + /(?:alpha|beta)(?: ?\d)?/i.exec(ua + ';' + (useFeatures && nav.appMinorVersion)) || + /\bMinefield\b/i.test(ua) && 'a' + )) { prerelease = /b/i.test(data) ? 'beta' : 'alpha'; version = version.replace(RegExp(data + '\\+?$'), '') + (prerelease == 'beta' ? beta : alpha) + (/\d+\+?/.exec(data) || ''); @@ -697,8 +699,9 @@ // detect BlackBerry OS version // http://docs.blackberry.com/en/developers/deliverables/18169/HTTP_headers_sent_by_BB_Browser_1234911_11.jsp else if (/BlackBerry/.test(product) && (data = - (RegExp(product.replace(/ +/g, ' *') + '/([.\\d]+)', 'i').exec(ua) || 0)[1] || - version)) { + (RegExp(product.replace(/ +/g, ' *') + '/([.\\d]+)', 'i').exec(ua) || 0)[1] || + version + )) { os = 'Device Software ' + data; version = null; } @@ -713,7 +716,7 @@ /Windows XP/.test(os) && version > 8 || version == 8 && !/Trident/.test(ua) )) - ) && !reOpera.test(data = parse.call(forOwn, ua.replace(reOpera, '') + ';')) && data.name) { + ) && !reOpera.test((data = parse.call(forOwn, ua.replace(reOpera, '') + ';'))) && data.name) { // when "indentifying", the UA contains both Opera and the other browser's name data = 'ing as ' + data.name + ((data = data.version) ? ' ' + data : ''); @@ -801,7 +804,7 @@ } } // strip incorrect OS versions - if (version && version.indexOf(data = /[\d.]+$/.exec(os)) == 0 && + if (version && version.indexOf((data = /[\d.]+$/.exec(os))) == 0 && ua.indexOf('/' + data + '-') > -1) { os = trim(os.replace(data, '')); } diff --git a/vendor/qunit-clib/README.md b/vendor/qunit-clib/README.md index 7c2edfa8f..40e93bb4c 100644 --- a/vendor/qunit-clib/README.md +++ b/vendor/qunit-clib/README.md @@ -1,4 +1,4 @@ -# QUnit CLIB v1.2.0 +# QUnit CLIB v1.3.0 ## command-line interface boilerplate QUnit CLIB helps extend QUnit's CLI support to many common CLI environments. @@ -9,26 +9,29 @@ QUnit CLIB helps extend QUnit's CLI support to many common CLI environments. ## Support -QUnit CLIB has been tested in at least Node.js 0.4.8-0.8.19, Narwhal v0.3.2, PhantomJS 1.8.1, RingoJS v0.9, and Rhino v1.7RC5. +QUnit CLIB has been tested in at least Node.js 0.4.8-0.8.20, Narwhal 0.3.2, PhantomJS 1.8.1, RingoJS 0.9, and Rhino 1.7RC5. ## Usage ```js -(function(window) { +;(function(window) { + 'use strict'; // use a single "load" function var load = typeof require == 'function' ? require : window.load; // load QUnit and CLIB if needed - var QUnit = - window.QUnit || ( - window.addEventListener || (window.addEventListener = Function.prototype), - window.setTimeout || (window.setTimeout = Function.prototype), - window.QUnit = load('path/to/qunit.js') || window.QUnit, - load('path/to/qunit-clib.js'), - window.addEventListener === Function.prototype && delete window.addEventListener, + var QUnit = (function() { + var noop = Function.prototype; + return window.QUnit || ( + window.addEventListener || (window.addEventListener = noop), + window.setTimeout || (window.setTimeout = noop), + window.QUnit = load('../vendor/qunit/qunit/qunit.js') || window.QUnit, + (load('../vendor/qunit-clib/qunit-clib.js') || { 'runInContext': noop }).runInContext(window), + addEventListener === noop && delete window.addEventListener, window.QUnit ); + }()); // explicitly call `QUnit.module()` instead of `module()` // in case we are in a CLI environment @@ -38,9 +41,8 @@ QUnit CLIB has been tested in at least Node.js 0.4.8-0.8.19, Narwhal v0.3.2, Pha // ... }); - // must call `QUnit.start()` if using QUnit < 1.3.0 with Node.js or any - // version of QUnit with Narwhal, PhantomJS, Rhino, or RingoJS - if (!window.document) { + // call `QUnit.start()` for Narwhal, Node.js, PhantomJS, Rhino, and RingoJS + if (!window.document || window.phantom) { QUnit.start(); } }(typeof global == 'object' && global || this)); @@ -49,7 +51,6 @@ QUnit CLIB has been tested in at least Node.js 0.4.8-0.8.19, Narwhal v0.3.2, Pha ## Footnotes 1. QUnit v1.3.0 does not work with Narwhal or Ringo < v0.8.0 - 2. Rhino v1.7RC4 does not support timeout fallbacks `clearTimeout` and `setTimeout` ## Author diff --git a/vendor/qunit-clib/qunit-clib.js b/vendor/qunit-clib/qunit-clib.js index 6c8e65d4d..8e1578d79 100644 --- a/vendor/qunit-clib/qunit-clib.js +++ b/vendor/qunit-clib/qunit-clib.js @@ -19,12 +19,16 @@ /*--------------------------------------------------------------------------*/ /** - * Installs the CLI boilerplate additions on the `context` object. + * Installs the CLI boilerplate additions on the given `context` object. * - * @private + * @memberOf exports * @param {Object} context The context object. */ function runInContext(context) { + // exit early if no `context` is provided or if `QUnit` does not exist + if (!context || !context.QUnit) { + return; + } /** * Schedules timer-based callbacks.