Update vendors and dev deps.

This commit is contained in:
John-David Dalton
2016-01-28 00:24:55 -08:00
parent 97612f3b31
commit 7bf7ab954b
11 changed files with 66 additions and 60 deletions

View File

@@ -9,8 +9,8 @@
// Establish the root object, `window` (`self`) in the browser, or `global` on the server.
// We use `self` instead of `window` for `WebWorker` support.
var root = (typeof self == 'object' && self.self == self && self) ||
(typeof global == 'object' && global.global == global && global);
var root = (typeof self == 'object' && self.self === self && self) ||
(typeof global == 'object' && global.global === global && global);
// Set up Backbone appropriately for the environment. Start with AMD.
if (typeof define === 'function' && define.amd) {
@@ -769,7 +769,8 @@
at = Math.min(Math.max(at, 0), array.length);
var tail = Array(array.length - at);
var length = insert.length;
for (var i = 0; i < tail.length; i++) tail[i] = array[i + at];
var i;
for (i = 0; i < tail.length; i++) tail[i] = array[i + at];
for (i = 0; i < length; i++) array[i + at] = insert[i];
for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];
};
@@ -821,10 +822,12 @@
if (models == null) return;
options = _.defaults({}, options, setOptions);
if (options.parse && !this._isModel(models)) models = this.parse(models, options);
if (options.parse && !this._isModel(models)) {
models = this.parse(models, options) || [];
}
var singular = !_.isArray(models);
models = singular ? (models ? [models] : []) : models.slice();
models = singular ? [models] : models.slice();
var at = options.at;
if (at != null) at = +at;
@@ -845,8 +848,8 @@
// Turn bare objects into model references, and prevent invalid models
// from being added.
var model;
for (var i = 0; i < models.length; i++) {
var model, i;
for (i = 0; i < models.length; i++) {
model = models[i];
// If a duplicate is found, prevent it from being added and
@@ -890,7 +893,7 @@
var orderChanged = false;
var replace = !sortable && add && remove;
if (set.length && replace) {
orderChanged = this.length != set.length || _.some(this.models, function(model, index) {
orderChanged = this.length !== set.length || _.some(this.models, function(model, index) {
return model !== set[index];
});
this.models.length = 0;

View File

@@ -429,7 +429,7 @@
});
var colE = new Backbone.Collection([e]);
var colF = new Backbone.Collection([f]);
assert.ok(e != f);
assert.notEqual(e, f);
assert.ok(colE.length === 1);
assert.ok(colF.length === 1);
colE.remove(e);
@@ -857,7 +857,7 @@
assert.expect(2);
var Model = Backbone.Model.extend({
validate: function(attrs) {
if (attrs.id == 3) return "id can't be 3";
if (attrs.id === 3) return "id can't be 3";
}
});
@@ -1324,7 +1324,7 @@
var col = new Backbone.Collection;
var model1 = col.push({id: 101});
var model2 = col.push({id: 101});
assert.ok(model2.cid == model1.cid);
assert.ok(model2.cid === model1.cid);
});
QUnit.test('`set` with non-normal id', function(assert) {

View File

@@ -352,8 +352,8 @@
_.extend(obj, Backbone.Events);
obj.on('all', function(event) {
obj.counter++;
if (event == 'a') a = true;
if (event == 'b') b = true;
if (event === 'a') a = true;
if (event === 'b') b = true;
})
.trigger('a b');
assert.ok(a);
@@ -477,7 +477,7 @@
QUnit.test('if callback is truthy but not a function, `on` should throw an error just like jQuery', function(assert) {
assert.expect(1);
var view = _.extend({}, Backbone.Events).on('test', 'noop');
assert.throws(function() {
assert.raises(function() {
view.trigger('test');
});
});

View File

@@ -89,7 +89,7 @@
doc.collection.url = '/collection/';
assert.equal(doc.url(), '/collection/1-the-tempest');
doc.collection = null;
assert.throws(function() { doc.url(); });
assert.raises(function() { doc.url(); });
doc.collection = collection;
});
@@ -251,12 +251,12 @@
var changeCount = 0;
a.on('change:foo', function() { changeCount += 1; });
a.set({foo: 2});
assert.ok(a.get('foo') == 2, 'Foo should have changed.');
assert.ok(changeCount == 1, 'Change count should have incremented.');
assert.equal(a.get('foo'), 2, 'Foo should have changed.');
assert.equal(changeCount, 1, 'Change count should have incremented.');
// set with value that is not new shouldn't fire change event
a.set({foo: 2});
assert.ok(a.get('foo') == 2, 'Foo should NOT have changed, still 2');
assert.ok(changeCount == 1, 'Change count should NOT have incremented.');
assert.equal(a.get('foo'), 2, 'Foo should NOT have changed, still 2');
assert.equal(changeCount, 1, 'Change count should NOT have incremented.');
a.validate = function(attrs) {
assert.equal(attrs.foo, void 0, 'validate:true passed while unsetting');
@@ -264,7 +264,7 @@
a.unset('foo', {validate: true});
assert.equal(a.get('foo'), void 0, 'Foo should have changed');
delete a.validate;
assert.ok(changeCount == 2, 'Change count should have incremented for unset.');
assert.equal(changeCount, 2, 'Change count should have incremented for unset.');
a.unset('id');
assert.equal(a.id, undefined, 'Unsetting the id should remove the id property.');
@@ -746,7 +746,7 @@
var lastError;
var model = new Backbone.Model();
model.validate = function(attrs) {
if (attrs.admin != this.get('admin')) return "Can't change admin status.";
if (attrs.admin !== this.get('admin')) return "Can't change admin status.";
};
model.on('invalid', function(model, error) {
lastError = error;

View File

@@ -134,7 +134,7 @@
},
optionalItem: function(arg){
this.arg = arg != void 0 ? arg : null;
this.arg = arg !== void 0 ? arg : null;
},
splat: function(args) {

View File

@@ -142,7 +142,7 @@
QUnit.test('urlError', function(assert) {
assert.expect(2);
var model = new Backbone.Model();
assert.throws(function() {
assert.raises(function() {
model.fetch();
});
model.fetch({url: '/one/two'});

View File

@@ -1,4 +1,4 @@
Copyright 2010-2015 Mathias Bynens <http://mathiasbynens.be/>
Copyright 2010-2016 Mathias Bynens <https://mathiasbynens.be/>
Based on JSLitmus.js, copyright Robert Kieffer <http://broofa.com/>
Modified by John-David Dalton <http://allyoucanleet.com/>

View File

@@ -1,9 +1,9 @@
/*!
* Benchmark.js v2.0.0-pre <http://benchmarkjs.com/>
* Copyright 2010-2015 Mathias Bynens <http://mths.be/>
* Benchmark.js v2.1.0 <https://benchmarkjs.com/>
* Copyright 2010-2016 Mathias Bynens <https://mths.be/>
* Based on JSLitmus.js, copyright Robert Kieffer <http://broofa.com/>
* Modified by John-David Dalton <http://allyoucanleet.com/>
* Available under MIT license <http://mths.be/mit>
* Available under MIT license <https://mths.be/mit>
*/
;(function() {
'use strict';
@@ -124,7 +124,7 @@
*/
function runInContext(context) {
// Exit early if unable to acquire lodash.
var _ = context && context._ || req('lodash-compat') || req('lodash') || root._;
var _ = context && context._ || req('lodash') || root._;
if (!_) {
Benchmark.runInContext = runInContext;
return Benchmark;
@@ -277,8 +277,7 @@
* methods are:
* [`each/forEach`](https://lodash.com/docs#forEach), [`forOwn`](https://lodash.com/docs#forOwn),
* [`has`](https://lodash.com/docs#has), [`indexOf`](https://lodash.com/docs#indexOf),
* [`map`](https://lodash.com/docs#map), [`pluck`](https://lodash.com/docs#pluck),
* and [`reduce`](https://lodash.com/docs#reduce)
* [`map`](https://lodash.com/docs#map), and [`reduce`](https://lodash.com/docs#reduce)
*
* @constructor
* @param {string} name A name to identify the benchmark.
@@ -355,7 +354,7 @@
var bench = this;
// Allow instance creation without the `new` operator.
if (bench == null || bench.constructor != Benchmark) {
if (!(bench instanceof Benchmark)) {
return new Benchmark(name, fn, options);
}
// Juggle arguments.
@@ -396,7 +395,7 @@
*/
function Deferred(clone) {
var deferred = this;
if (deferred == null || deferred.constructor != Deferred) {
if (!(deferred instanceof Deferred)) {
return new Deferred(clone);
}
deferred.benchmark = clone;
@@ -415,9 +414,9 @@
if (type instanceof Event) {
return type;
}
return (event == null || event.constructor != Event)
? new Event(type)
: _.assign(event, { 'timeStamp': _.now() }, typeof type == 'string' ? { 'type': type } : type);
return (event instanceof Event)
? _.assign(event, { 'timeStamp': _.now() }, typeof type == 'string' ? { 'type': type } : type)
: new Event(type);
}
/**
@@ -426,8 +425,7 @@
* Note: Each Suite instance has a handful of wrapped lodash methods to
* make working with Suites easier. The wrapped lodash methods are:
* [`each/forEach`](https://lodash.com/docs#forEach), [`indexOf`](https://lodash.com/docs#indexOf),
* [`map`](https://lodash.com/docs#map), [`pluck`](https://lodash.com/docs#pluck),
* and [`reduce`](https://lodash.com/docs#reduce)
* [`map`](https://lodash.com/docs#map), and [`reduce`](https://lodash.com/docs#reduce)
*
* @constructor
* @memberOf Benchmark
@@ -467,7 +465,7 @@
var suite = this;
// Allow instance creation without the `new` operator.
if (suite == null || suite.constructor != Suite) {
if (!(suite instanceof Suite)) {
return new Suite(name, options);
}
// Juggle arguments.
@@ -491,7 +489,7 @@
* @param {*} value The value to clone.
* @returns {*} The cloned value.
*/
var cloneDeep = _.partial(_.cloneDeepWith || _.cloneDeep, _, function(value) {
var cloneDeep = _.partial(_.cloneDeepWith, _, function(value) {
// Only clone primitives, arrays, and plain objects.
return (_.isObject(value) && !_.isArray(value) && !_.isPlainObject(value))
? value
@@ -763,7 +761,7 @@
if (callback === 'successful') {
// Callback to exclude those that are errored, unrun, or have hz of Infinity.
callback = function(bench) {
return bench.cycles && _.isFinite(bench.hz);
return bench.cycles && _.isFinite(bench.hz) && !bench.error;
};
}
else if (callback === 'fastest' || callback === 'slowest') {
@@ -914,7 +912,7 @@
function isAsync(object) {
// Avoid using `instanceof` here because of IE memory leak issues with host objects.
var async = args[0] && args[0].async;
return Object(object).constructor == Benchmark && name == 'run' &&
return name == 'run' && (object instanceof Benchmark) &&
((async == null ? object.options.async : async) && support.timeout || object.defer);
}
@@ -933,7 +931,6 @@
? index
: (index = false);
}
// Juggle arguments.
if (_.isString(name)) {
// 2 arguments (array, name).
@@ -945,7 +942,6 @@
args = _.isArray(args = 'args' in options ? options.args : []) ? args : [args];
queued = options.queued;
}
// Start iterating over the array.
if (raiseIndex() !== false) {
// Emit "start" event.
@@ -955,7 +951,7 @@
options.onStart.call(benches, Event(eventProps));
// End early if the suite was aborted in an "onStart" listener.
if (benches.aborted && benches.constructor == Suite && name == 'run') {
if (name == 'run' && (benches instanceof Suite) && benches.aborted) {
// Emit "cycle" event.
eventProps.type = 'cycle';
options.onCycle.call(benches, Event(eventProps));
@@ -1794,7 +1790,7 @@
timers.push({ 'ns': timer.ns, 'res': getRes('us'), 'unit': 'us' });
}
// Pick timer with highest resolution.
timer = (_.minBy || _.min)(timers, 'res');
timer = _.minBy(timers, 'res');
// Error if there are no working timers.
if (timer.res == Infinity) {
@@ -1977,7 +1973,6 @@
deferred = clone;
clone = clone.benchmark;
}
var clocked,
cycles,
divisor,
@@ -2008,7 +2003,6 @@
}
}
}
// Continue, if not errored.
if (clone.running) {
// Compute the time taken to complete last test cycle.
@@ -2257,7 +2251,7 @@
/**
* Platform object with properties describing things like browser name,
* version, and operating system. See [`platform.js`](http://mths.be/platform).
* version, and operating system. See [`platform.js`](https://mths.be/platform).
*
* @static
* @memberOf Benchmark
@@ -2284,7 +2278,7 @@
* @memberOf Benchmark
* @type string
*/
'version': '2.0.0-pre'
'version': '2.1.0'
});
_.assign(Benchmark, {
@@ -2297,7 +2291,7 @@
});
// Add lodash methods to Benchmark.
_.each(['each', 'forEach', 'forOwn', 'has', 'indexOf', 'map', 'pluck', 'reduce'], function(methodName) {
_.each(['each', 'forEach', 'forOwn', 'has', 'indexOf', 'map', 'reduce'], function(methodName) {
Benchmark[methodName] = _[methodName];
});
@@ -2745,7 +2739,7 @@
/*------------------------------------------------------------------------*/
// Add lodash methods as Suite methods.
_.each(['each', 'forEach', 'indexOf', 'map', 'pluck', 'reduce'], function(methodName) {
_.each(['each', 'forEach', 'indexOf', 'map', 'reduce'], function(methodName) {
var func = _[methodName];
Suite.prototype[methodName] = function() {
var args = [this];
@@ -2799,17 +2793,15 @@
// Check for `exports` after `define` in case a build optimizer adds an `exports` object.
if (freeExports && freeModule) {
// Export for Node.js or RingoJS.
// Export for Node.js.
if (moduleExports) {
(freeModule.exports = Benchmark).Benchmark = Benchmark;
}
// Export for Rhino with CommonJS support.
else {
freeExports.Benchmark = Benchmark;
}
// Export for CommonJS support.
freeExports.Benchmark = Benchmark;
}
else {
// Export for a browser or Rhino.
// Export to the global object.
root.Benchmark = Benchmark;
}
}

View File

@@ -639,6 +639,17 @@
assert.strictEqual(_.isString(1), false);
});
QUnit.test('isSymbol', function(assert) {
assert.ok(!_.isSymbol(0), 'numbers are not symbols');
assert.ok(!_.isSymbol(''), 'strings are not symbols');
assert.ok(!_.isSymbol(_.isSymbol), 'functions are not symbols');
if (typeof Symbol === 'function') {
assert.ok(_.isSymbol(Symbol()), 'symbols are symbols');
assert.ok(_.isSymbol(Symbol('description')), 'described symbols are symbols');
assert.ok(_.isSymbol(Object(Symbol())), 'boxed symbols are symbols');
}
});
QUnit.test('isNumber', function(assert) {
assert.ok(!_.isNumber('string'), 'a string is not a number');
assert.ok(!_.isNumber(arguments), 'the arguments object is not a number');

View File

@@ -1286,7 +1286,7 @@
};
// Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.
_.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {
_.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error', 'Symbol'], function(name) {
_['is' + name] = function(obj) {
return toString.call(obj) === '[object ' + name + ']';
};