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.