konacha 3.6.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -437,7 +437,7 @@ Context.prototype.inspect = function() {
437
437
  */
438
438
 
439
439
  var Runnable = require('./runnable');
440
- var create = require('lodash.create');
440
+ var inherits = require('./utils').inherits;
441
441
 
442
442
  /**
443
443
  * Expose `Hook`.
@@ -460,10 +460,7 @@ function Hook(title, fn) {
460
460
  /**
461
461
  * Inherit from `Runnable.prototype`.
462
462
  */
463
-
464
- Hook.prototype = create(Runnable.prototype, {
465
- constructor: Hook
466
- });
463
+ inherits(Hook, Runnable);
467
464
 
468
465
  /**
469
466
  * Get or set the test `err`.
@@ -482,7 +479,7 @@ Hook.prototype.error = function(err) {
482
479
  this._error = err;
483
480
  };
484
481
 
485
- },{"./runnable":35,"lodash.create":70}],8:[function(require,module,exports){
482
+ },{"./runnable":35,"./utils":39}],8:[function(require,module,exports){
486
483
  /**
487
484
  * Module dependencies.
488
485
  */
@@ -2136,7 +2133,7 @@ function Doc(runner) {
2136
2133
  */
2137
2134
 
2138
2135
  var Base = require('./base');
2139
- var create = require('lodash.create');
2136
+ var inherits = require('../utils').inherits;
2140
2137
  var color = Base.color;
2141
2138
 
2142
2139
  /**
@@ -2196,13 +2193,10 @@ function Dot(runner) {
2196
2193
  /**
2197
2194
  * Inherit from `Base.prototype`.
2198
2195
  */
2199
-
2200
- Dot.prototype = create(Base.prototype, {
2201
- constructor: Dot
2202
- });
2196
+ inherits(Dot, Base);
2203
2197
 
2204
2198
  }).call(this,require('_process'))
2205
- },{"./base":17,"_process":51,"lodash.create":70}],20:[function(require,module,exports){
2199
+ },{"../utils":39,"./base":17,"_process":51}],20:[function(require,module,exports){
2206
2200
  (function (process,__dirname){
2207
2201
  /**
2208
2202
  * Module dependencies.
@@ -2930,7 +2924,7 @@ function errorJSON(err) {
2930
2924
  */
2931
2925
 
2932
2926
  var Base = require('./base');
2933
- var create = require('lodash.create');
2927
+ var inherits = require('../utils').inherits;
2934
2928
  var cursor = Base.cursor;
2935
2929
  var color = Base.color;
2936
2930
 
@@ -3016,20 +3010,17 @@ function Landing(runner) {
3016
3010
  /**
3017
3011
  * Inherit from `Base.prototype`.
3018
3012
  */
3019
-
3020
- Landing.prototype = create(Base.prototype, {
3021
- constructor: Landing
3022
- });
3013
+ inherits(Landing, Base);
3023
3014
 
3024
3015
  }).call(this,require('_process'))
3025
- },{"./base":17,"_process":51,"lodash.create":70}],27:[function(require,module,exports){
3016
+ },{"../utils":39,"./base":17,"_process":51}],27:[function(require,module,exports){
3026
3017
  (function (process){
3027
3018
  /**
3028
3019
  * Module dependencies.
3029
3020
  */
3030
3021
 
3031
3022
  var Base = require('./base');
3032
- var create = require('lodash.create');
3023
+ var inherits = require('../utils').inherits;
3033
3024
  var color = Base.color;
3034
3025
  var cursor = Base.cursor;
3035
3026
 
@@ -3084,13 +3075,10 @@ function List(runner) {
3084
3075
  /**
3085
3076
  * Inherit from `Base.prototype`.
3086
3077
  */
3087
-
3088
- List.prototype = create(Base.prototype, {
3089
- constructor: List
3090
- });
3078
+ inherits(List, Base);
3091
3079
 
3092
3080
  }).call(this,require('_process'))
3093
- },{"./base":17,"_process":51,"lodash.create":70}],28:[function(require,module,exports){
3081
+ },{"../utils":39,"./base":17,"_process":51}],28:[function(require,module,exports){
3094
3082
  (function (process){
3095
3083
  /**
3096
3084
  * Module dependencies.
@@ -3198,7 +3186,7 @@ function Markdown(runner) {
3198
3186
  */
3199
3187
 
3200
3188
  var Base = require('./base');
3201
- var create = require('lodash.create');
3189
+ var inherits = require('../utils').inherits;
3202
3190
 
3203
3191
  /**
3204
3192
  * Expose `Min`.
@@ -3228,20 +3216,17 @@ function Min(runner) {
3228
3216
  /**
3229
3217
  * Inherit from `Base.prototype`.
3230
3218
  */
3231
-
3232
- Min.prototype = create(Base.prototype, {
3233
- constructor: Min
3234
- });
3219
+ inherits(Min, Base);
3235
3220
 
3236
3221
  }).call(this,require('_process'))
3237
- },{"./base":17,"_process":51,"lodash.create":70}],30:[function(require,module,exports){
3222
+ },{"../utils":39,"./base":17,"_process":51}],30:[function(require,module,exports){
3238
3223
  (function (process){
3239
3224
  /**
3240
3225
  * Module dependencies.
3241
3226
  */
3242
3227
 
3243
3228
  var Base = require('./base');
3244
- var create = require('lodash.create');
3229
+ var inherits = require('../utils').inherits;
3245
3230
 
3246
3231
  /**
3247
3232
  * Expose `Dot`.
@@ -3300,10 +3285,7 @@ function NyanCat(runner) {
3300
3285
  /**
3301
3286
  * Inherit from `Base.prototype`.
3302
3287
  */
3303
-
3304
- NyanCat.prototype = create(Base.prototype, {
3305
- constructor: NyanCat
3306
- });
3288
+ inherits(NyanCat, Base);
3307
3289
 
3308
3290
  /**
3309
3291
  * Draw the nyan cat
@@ -3502,14 +3484,14 @@ function write(string) {
3502
3484
  }
3503
3485
 
3504
3486
  }).call(this,require('_process'))
3505
- },{"./base":17,"_process":51,"lodash.create":70}],31:[function(require,module,exports){
3487
+ },{"../utils":39,"./base":17,"_process":51}],31:[function(require,module,exports){
3506
3488
  (function (process){
3507
3489
  /**
3508
3490
  * Module dependencies.
3509
3491
  */
3510
3492
 
3511
3493
  var Base = require('./base');
3512
- var create = require('lodash.create');
3494
+ var inherits = require('../utils').inherits;
3513
3495
  var color = Base.color;
3514
3496
  var cursor = Base.cursor;
3515
3497
 
@@ -3592,19 +3574,16 @@ function Progress(runner, options) {
3592
3574
  /**
3593
3575
  * Inherit from `Base.prototype`.
3594
3576
  */
3595
-
3596
- Progress.prototype = create(Base.prototype, {
3597
- constructor: Progress
3598
- });
3577
+ inherits(Progress, Base);
3599
3578
 
3600
3579
  }).call(this,require('_process'))
3601
- },{"./base":17,"_process":51,"lodash.create":70}],32:[function(require,module,exports){
3580
+ },{"../utils":39,"./base":17,"_process":51}],32:[function(require,module,exports){
3602
3581
  /**
3603
3582
  * Module dependencies.
3604
3583
  */
3605
3584
 
3606
3585
  var Base = require('./base');
3607
- var create = require('lodash.create');
3586
+ var inherits = require('../utils').inherits;
3608
3587
  var color = Base.color;
3609
3588
  var cursor = Base.cursor;
3610
3589
 
@@ -3681,12 +3660,9 @@ function Spec(runner) {
3681
3660
  /**
3682
3661
  * Inherit from `Base.prototype`.
3683
3662
  */
3663
+ inherits(Spec, Base);
3684
3664
 
3685
- Spec.prototype = create(Base.prototype, {
3686
- constructor: Spec
3687
- });
3688
-
3689
- },{"./base":17,"lodash.create":70}],33:[function(require,module,exports){
3665
+ },{"../utils":39,"./base":17}],33:[function(require,module,exports){
3690
3666
  /**
3691
3667
  * Module dependencies.
3692
3668
  */
@@ -3763,9 +3739,10 @@ function title(test) {
3763
3739
  */
3764
3740
 
3765
3741
  var Base = require('./base');
3766
- var create = require('lodash.create');
3742
+ var utils = require('../utils');
3743
+ var inherits = utils.inherits;
3767
3744
  var fs = require('fs');
3768
- var escape = require('../utils').escape;
3745
+ var escape = utils.escape;
3769
3746
 
3770
3747
  /**
3771
3748
  * Save timer references to avoid Sinon interfering (see GH-237).
@@ -3855,10 +3832,7 @@ XUnit.prototype.done = function(failures, fn) {
3855
3832
  /**
3856
3833
  * Inherit from `Base.prototype`.
3857
3834
  */
3858
-
3859
- XUnit.prototype = create(Base.prototype, {
3860
- constructor: XUnit
3861
- });
3835
+ inherits(XUnit, Base);
3862
3836
 
3863
3837
  /**
3864
3838
  * Write out the given line.
@@ -3931,7 +3905,7 @@ function cdata(str) {
3931
3905
  }
3932
3906
 
3933
3907
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
3934
- },{"../utils":39,"./base":17,"fs":41,"lodash.create":70}],35:[function(require,module,exports){
3908
+ },{"../utils":39,"./base":17,"fs":41}],35:[function(require,module,exports){
3935
3909
  (function (global){
3936
3910
  /**
3937
3911
  * Module dependencies.
@@ -3939,10 +3913,10 @@ function cdata(str) {
3939
3913
 
3940
3914
  var EventEmitter = require('events').EventEmitter;
3941
3915
  var Pending = require('./pending');
3942
- var create = require('lodash.create');
3943
3916
  var debug = require('debug')('mocha:runnable');
3944
3917
  var milliseconds = require('./ms');
3945
3918
  var utils = require('./utils');
3919
+ var inherits = utils.inherits;
3946
3920
 
3947
3921
  /**
3948
3922
  * Save timer references to avoid Sinon interfering (see GH-237).
@@ -3992,10 +3966,7 @@ function Runnable(title, fn) {
3992
3966
  /**
3993
3967
  * Inherit from `EventEmitter.prototype`.
3994
3968
  */
3995
-
3996
- Runnable.prototype = create(EventEmitter.prototype, {
3997
- constructor: Runnable
3998
- });
3969
+ inherits(Runnable, EventEmitter);
3999
3970
 
4000
3971
  /**
4001
3972
  * Set & get timeout `ms`.
@@ -4258,7 +4229,7 @@ Runnable.prototype.run = function(fn) {
4258
4229
  };
4259
4230
 
4260
4231
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
4261
- },{"./ms":15,"./pending":16,"./utils":39,"debug":2,"events":3,"lodash.create":70}],36:[function(require,module,exports){
4232
+ },{"./ms":15,"./pending":16,"./utils":39,"debug":2,"events":3}],36:[function(require,module,exports){
4262
4233
  (function (process,global){
4263
4234
  /**
4264
4235
  * Module dependencies.
@@ -4266,15 +4237,16 @@ Runnable.prototype.run = function(fn) {
4266
4237
 
4267
4238
  var EventEmitter = require('events').EventEmitter;
4268
4239
  var Pending = require('./pending');
4269
- var create = require('lodash.create');
4240
+ var utils = require('./utils');
4241
+ var inherits = utils.inherits;
4270
4242
  var debug = require('debug')('mocha:runner');
4271
- var filter = require('./utils').filter;
4272
- var indexOf = require('./utils').indexOf;
4273
- var keys = require('./utils').keys;
4274
- var stackFilter = require('./utils').stackTraceFilter();
4275
- var stringify = require('./utils').stringify;
4276
- var type = require('./utils').type;
4277
- var undefinedError = require('./utils').undefinedError;
4243
+ var filter = utils.filter;
4244
+ var indexOf = utils.indexOf;
4245
+ var keys = utils.keys;
4246
+ var stackFilter = utils.stackTraceFilter();
4247
+ var stringify = utils.stringify;
4248
+ var type = utils.type;
4249
+ var undefinedError = utils.undefinedError;
4278
4250
 
4279
4251
  /**
4280
4252
  * Non-enumerable globals.
@@ -4349,10 +4321,7 @@ Runner.immediately = global.setImmediate || process.nextTick;
4349
4321
  /**
4350
4322
  * Inherit from `EventEmitter.prototype`.
4351
4323
  */
4352
-
4353
- Runner.prototype = create(EventEmitter.prototype, {
4354
- constructor: Runner
4355
- });
4324
+ inherits(Runner, EventEmitter);
4356
4325
 
4357
4326
  /**
4358
4327
  * Run tests with full titles matching `re`. Updates runner.total
@@ -4831,7 +4800,7 @@ Runner.prototype.runSuite = function(suite, fn) {
4831
4800
 
4832
4801
  debug('run suite %s', suite.fullTitle());
4833
4802
 
4834
- if (!total) {
4803
+ if (!total || (self.failures && suite._bail)) {
4835
4804
  return fn();
4836
4805
  }
4837
4806
 
@@ -5085,17 +5054,17 @@ function extraGlobals() {
5085
5054
  }
5086
5055
 
5087
5056
  }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
5088
- },{"./pending":16,"./utils":39,"_process":51,"debug":2,"events":3,"lodash.create":70}],37:[function(require,module,exports){
5057
+ },{"./pending":16,"./utils":39,"_process":51,"debug":2,"events":3}],37:[function(require,module,exports){
5089
5058
  /**
5090
5059
  * Module dependencies.
5091
5060
  */
5092
5061
 
5093
5062
  var EventEmitter = require('events').EventEmitter;
5094
5063
  var Hook = require('./hook');
5095
- var create = require('lodash.create');
5064
+ var utils = require('./utils');
5065
+ var inherits = utils.inherits;
5096
5066
  var debug = require('debug')('mocha:suite');
5097
5067
  var milliseconds = require('./ms');
5098
- var utils = require('./utils');
5099
5068
 
5100
5069
  /**
5101
5070
  * Expose `Suite`.
@@ -5154,10 +5123,7 @@ function Suite(title, parentContext) {
5154
5123
  /**
5155
5124
  * Inherit from `EventEmitter.prototype`.
5156
5125
  */
5157
-
5158
- Suite.prototype = create(EventEmitter.prototype, {
5159
- constructor: Suite
5160
- });
5126
+ inherits(Suite, EventEmitter);
5161
5127
 
5162
5128
  /**
5163
5129
  * Return a clone of this `Suite`.
@@ -5455,13 +5421,13 @@ Suite.prototype.run = function run() {
5455
5421
  }
5456
5422
  };
5457
5423
 
5458
- },{"./hook":7,"./ms":15,"./utils":39,"debug":2,"events":3,"lodash.create":70}],38:[function(require,module,exports){
5424
+ },{"./hook":7,"./ms":15,"./utils":39,"debug":2,"events":3}],38:[function(require,module,exports){
5459
5425
  /**
5460
5426
  * Module dependencies.
5461
5427
  */
5462
5428
 
5463
5429
  var Runnable = require('./runnable');
5464
- var create = require('lodash.create');
5430
+ var inherits = require('./utils').inherits;
5465
5431
 
5466
5432
  /**
5467
5433
  * Expose `Test`.
@@ -5485,12 +5451,9 @@ function Test(title, fn) {
5485
5451
  /**
5486
5452
  * Inherit from `Runnable.prototype`.
5487
5453
  */
5454
+ inherits(Test, Runnable);
5488
5455
 
5489
- Test.prototype = create(Runnable.prototype, {
5490
- constructor: Test
5491
- });
5492
-
5493
- },{"./runnable":35,"lodash.create":70}],39:[function(require,module,exports){
5456
+ },{"./runnable":35,"./utils":39}],39:[function(require,module,exports){
5494
5457
  (function (process,Buffer){
5495
5458
  /* eslint-env browser */
5496
5459
 
@@ -5513,6 +5476,8 @@ var watchFile = require('fs').watchFile;
5513
5476
 
5514
5477
  var ignore = ['node_modules', '.git'];
5515
5478
 
5479
+ exports.inherits = require('util').inherits;
5480
+
5516
5481
  /**
5517
5482
  * Escape special characters in the given string of html.
5518
5483
  *
@@ -6234,7 +6199,7 @@ exports.stackTraceFilter = function() {
6234
6199
  };
6235
6200
 
6236
6201
  }).call(this,require('_process'),require("buffer").Buffer)
6237
- },{"_process":51,"buffer":43,"debug":2,"fs":41,"glob":41,"path":41}],40:[function(require,module,exports){
6202
+ },{"_process":51,"buffer":43,"debug":2,"fs":41,"glob":41,"path":41,"util":66}],40:[function(require,module,exports){
6238
6203
  (function (process){
6239
6204
  var WritableStream = require('stream').Writable
6240
6205
  var inherits = require('util').inherits
@@ -12262,986 +12227,6 @@ function growl(msg, options, fn) {
12262
12227
 
12263
12228
  }).call(this,require('_process'))
12264
12229
  },{"_process":51,"child_process":41,"fs":41,"os":50,"path":41}],70:[function(require,module,exports){
12265
- /**
12266
- * lodash 3.1.1 (Custom Build) <https://lodash.com/>
12267
- * Build: `lodash modern modularize exports="npm" -o ./`
12268
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
12269
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
12270
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
12271
- * Available under MIT license <https://lodash.com/license>
12272
- */
12273
- var baseAssign = require('lodash._baseassign'),
12274
- baseCreate = require('lodash._basecreate'),
12275
- isIterateeCall = require('lodash._isiterateecall');
12276
-
12277
- /**
12278
- * Creates an object that inherits from the given `prototype` object. If a
12279
- * `properties` object is provided its own enumerable properties are assigned
12280
- * to the created object.
12281
- *
12282
- * @static
12283
- * @memberOf _
12284
- * @category Object
12285
- * @param {Object} prototype The object to inherit from.
12286
- * @param {Object} [properties] The properties to assign to the object.
12287
- * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
12288
- * @returns {Object} Returns the new object.
12289
- * @example
12290
- *
12291
- * function Shape() {
12292
- * this.x = 0;
12293
- * this.y = 0;
12294
- * }
12295
- *
12296
- * function Circle() {
12297
- * Shape.call(this);
12298
- * }
12299
- *
12300
- * Circle.prototype = _.create(Shape.prototype, {
12301
- * 'constructor': Circle
12302
- * });
12303
- *
12304
- * var circle = new Circle;
12305
- * circle instanceof Circle;
12306
- * // => true
12307
- *
12308
- * circle instanceof Shape;
12309
- * // => true
12310
- */
12311
- function create(prototype, properties, guard) {
12312
- var result = baseCreate(prototype);
12313
- if (guard && isIterateeCall(prototype, properties, guard)) {
12314
- properties = undefined;
12315
- }
12316
- return properties ? baseAssign(result, properties) : result;
12317
- }
12318
-
12319
- module.exports = create;
12320
-
12321
- },{"lodash._baseassign":71,"lodash._basecreate":77,"lodash._isiterateecall":78}],71:[function(require,module,exports){
12322
- /**
12323
- * lodash 3.2.0 (Custom Build) <https://lodash.com/>
12324
- * Build: `lodash modern modularize exports="npm" -o ./`
12325
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
12326
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
12327
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
12328
- * Available under MIT license <https://lodash.com/license>
12329
- */
12330
- var baseCopy = require('lodash._basecopy'),
12331
- keys = require('lodash.keys');
12332
-
12333
- /**
12334
- * The base implementation of `_.assign` without support for argument juggling,
12335
- * multiple sources, and `customizer` functions.
12336
- *
12337
- * @private
12338
- * @param {Object} object The destination object.
12339
- * @param {Object} source The source object.
12340
- * @returns {Object} Returns `object`.
12341
- */
12342
- function baseAssign(object, source) {
12343
- return source == null
12344
- ? object
12345
- : baseCopy(source, keys(source), object);
12346
- }
12347
-
12348
- module.exports = baseAssign;
12349
-
12350
- },{"lodash._basecopy":72,"lodash.keys":73}],72:[function(require,module,exports){
12351
- /**
12352
- * lodash 3.0.1 (Custom Build) <https://lodash.com/>
12353
- * Build: `lodash modern modularize exports="npm" -o ./`
12354
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
12355
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
12356
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
12357
- * Available under MIT license <https://lodash.com/license>
12358
- */
12359
-
12360
- /**
12361
- * Copies properties of `source` to `object`.
12362
- *
12363
- * @private
12364
- * @param {Object} source The object to copy properties from.
12365
- * @param {Array} props The property names to copy.
12366
- * @param {Object} [object={}] The object to copy properties to.
12367
- * @returns {Object} Returns `object`.
12368
- */
12369
- function baseCopy(source, props, object) {
12370
- object || (object = {});
12371
-
12372
- var index = -1,
12373
- length = props.length;
12374
-
12375
- while (++index < length) {
12376
- var key = props[index];
12377
- object[key] = source[key];
12378
- }
12379
- return object;
12380
- }
12381
-
12382
- module.exports = baseCopy;
12383
-
12384
- },{}],73:[function(require,module,exports){
12385
- /**
12386
- * lodash 3.1.2 (Custom Build) <https://lodash.com/>
12387
- * Build: `lodash modern modularize exports="npm" -o ./`
12388
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
12389
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
12390
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
12391
- * Available under MIT license <https://lodash.com/license>
12392
- */
12393
- var getNative = require('lodash._getnative'),
12394
- isArguments = require('lodash.isarguments'),
12395
- isArray = require('lodash.isarray');
12396
-
12397
- /** Used to detect unsigned integer values. */
12398
- var reIsUint = /^\d+$/;
12399
-
12400
- /** Used for native method references. */
12401
- var objectProto = Object.prototype;
12402
-
12403
- /** Used to check objects for own properties. */
12404
- var hasOwnProperty = objectProto.hasOwnProperty;
12405
-
12406
- /* Native method references for those with the same name as other `lodash` methods. */
12407
- var nativeKeys = getNative(Object, 'keys');
12408
-
12409
- /**
12410
- * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
12411
- * of an array-like value.
12412
- */
12413
- var MAX_SAFE_INTEGER = 9007199254740991;
12414
-
12415
- /**
12416
- * The base implementation of `_.property` without support for deep paths.
12417
- *
12418
- * @private
12419
- * @param {string} key The key of the property to get.
12420
- * @returns {Function} Returns the new function.
12421
- */
12422
- function baseProperty(key) {
12423
- return function(object) {
12424
- return object == null ? undefined : object[key];
12425
- };
12426
- }
12427
-
12428
- /**
12429
- * Gets the "length" property value of `object`.
12430
- *
12431
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
12432
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
12433
- *
12434
- * @private
12435
- * @param {Object} object The object to query.
12436
- * @returns {*} Returns the "length" value.
12437
- */
12438
- var getLength = baseProperty('length');
12439
-
12440
- /**
12441
- * Checks if `value` is array-like.
12442
- *
12443
- * @private
12444
- * @param {*} value The value to check.
12445
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
12446
- */
12447
- function isArrayLike(value) {
12448
- return value != null && isLength(getLength(value));
12449
- }
12450
-
12451
- /**
12452
- * Checks if `value` is a valid array-like index.
12453
- *
12454
- * @private
12455
- * @param {*} value The value to check.
12456
- * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
12457
- * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
12458
- */
12459
- function isIndex(value, length) {
12460
- value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
12461
- length = length == null ? MAX_SAFE_INTEGER : length;
12462
- return value > -1 && value % 1 == 0 && value < length;
12463
- }
12464
-
12465
- /**
12466
- * Checks if `value` is a valid array-like length.
12467
- *
12468
- * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
12469
- *
12470
- * @private
12471
- * @param {*} value The value to check.
12472
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
12473
- */
12474
- function isLength(value) {
12475
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
12476
- }
12477
-
12478
- /**
12479
- * A fallback implementation of `Object.keys` which creates an array of the
12480
- * own enumerable property names of `object`.
12481
- *
12482
- * @private
12483
- * @param {Object} object The object to query.
12484
- * @returns {Array} Returns the array of property names.
12485
- */
12486
- function shimKeys(object) {
12487
- var props = keysIn(object),
12488
- propsLength = props.length,
12489
- length = propsLength && object.length;
12490
-
12491
- var allowIndexes = !!length && isLength(length) &&
12492
- (isArray(object) || isArguments(object));
12493
-
12494
- var index = -1,
12495
- result = [];
12496
-
12497
- while (++index < propsLength) {
12498
- var key = props[index];
12499
- if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {
12500
- result.push(key);
12501
- }
12502
- }
12503
- return result;
12504
- }
12505
-
12506
- /**
12507
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
12508
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
12509
- *
12510
- * @static
12511
- * @memberOf _
12512
- * @category Lang
12513
- * @param {*} value The value to check.
12514
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
12515
- * @example
12516
- *
12517
- * _.isObject({});
12518
- * // => true
12519
- *
12520
- * _.isObject([1, 2, 3]);
12521
- * // => true
12522
- *
12523
- * _.isObject(1);
12524
- * // => false
12525
- */
12526
- function isObject(value) {
12527
- // Avoid a V8 JIT bug in Chrome 19-20.
12528
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
12529
- var type = typeof value;
12530
- return !!value && (type == 'object' || type == 'function');
12531
- }
12532
-
12533
- /**
12534
- * Creates an array of the own enumerable property names of `object`.
12535
- *
12536
- * **Note:** Non-object values are coerced to objects. See the
12537
- * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
12538
- * for more details.
12539
- *
12540
- * @static
12541
- * @memberOf _
12542
- * @category Object
12543
- * @param {Object} object The object to query.
12544
- * @returns {Array} Returns the array of property names.
12545
- * @example
12546
- *
12547
- * function Foo() {
12548
- * this.a = 1;
12549
- * this.b = 2;
12550
- * }
12551
- *
12552
- * Foo.prototype.c = 3;
12553
- *
12554
- * _.keys(new Foo);
12555
- * // => ['a', 'b'] (iteration order is not guaranteed)
12556
- *
12557
- * _.keys('hi');
12558
- * // => ['0', '1']
12559
- */
12560
- var keys = !nativeKeys ? shimKeys : function(object) {
12561
- var Ctor = object == null ? undefined : object.constructor;
12562
- if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
12563
- (typeof object != 'function' && isArrayLike(object))) {
12564
- return shimKeys(object);
12565
- }
12566
- return isObject(object) ? nativeKeys(object) : [];
12567
- };
12568
-
12569
- /**
12570
- * Creates an array of the own and inherited enumerable property names of `object`.
12571
- *
12572
- * **Note:** Non-object values are coerced to objects.
12573
- *
12574
- * @static
12575
- * @memberOf _
12576
- * @category Object
12577
- * @param {Object} object The object to query.
12578
- * @returns {Array} Returns the array of property names.
12579
- * @example
12580
- *
12581
- * function Foo() {
12582
- * this.a = 1;
12583
- * this.b = 2;
12584
- * }
12585
- *
12586
- * Foo.prototype.c = 3;
12587
- *
12588
- * _.keysIn(new Foo);
12589
- * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
12590
- */
12591
- function keysIn(object) {
12592
- if (object == null) {
12593
- return [];
12594
- }
12595
- if (!isObject(object)) {
12596
- object = Object(object);
12597
- }
12598
- var length = object.length;
12599
- length = (length && isLength(length) &&
12600
- (isArray(object) || isArguments(object)) && length) || 0;
12601
-
12602
- var Ctor = object.constructor,
12603
- index = -1,
12604
- isProto = typeof Ctor == 'function' && Ctor.prototype === object,
12605
- result = Array(length),
12606
- skipIndexes = length > 0;
12607
-
12608
- while (++index < length) {
12609
- result[index] = (index + '');
12610
- }
12611
- for (var key in object) {
12612
- if (!(skipIndexes && isIndex(key, length)) &&
12613
- !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
12614
- result.push(key);
12615
- }
12616
- }
12617
- return result;
12618
- }
12619
-
12620
- module.exports = keys;
12621
-
12622
- },{"lodash._getnative":74,"lodash.isarguments":75,"lodash.isarray":76}],74:[function(require,module,exports){
12623
- /**
12624
- * lodash 3.9.1 (Custom Build) <https://lodash.com/>
12625
- * Build: `lodash modern modularize exports="npm" -o ./`
12626
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
12627
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
12628
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
12629
- * Available under MIT license <https://lodash.com/license>
12630
- */
12631
-
12632
- /** `Object#toString` result references. */
12633
- var funcTag = '[object Function]';
12634
-
12635
- /** Used to detect host constructors (Safari > 5). */
12636
- var reIsHostCtor = /^\[object .+?Constructor\]$/;
12637
-
12638
- /**
12639
- * Checks if `value` is object-like.
12640
- *
12641
- * @private
12642
- * @param {*} value The value to check.
12643
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
12644
- */
12645
- function isObjectLike(value) {
12646
- return !!value && typeof value == 'object';
12647
- }
12648
-
12649
- /** Used for native method references. */
12650
- var objectProto = Object.prototype;
12651
-
12652
- /** Used to resolve the decompiled source of functions. */
12653
- var fnToString = Function.prototype.toString;
12654
-
12655
- /** Used to check objects for own properties. */
12656
- var hasOwnProperty = objectProto.hasOwnProperty;
12657
-
12658
- /**
12659
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
12660
- * of values.
12661
- */
12662
- var objToString = objectProto.toString;
12663
-
12664
- /** Used to detect if a method is native. */
12665
- var reIsNative = RegExp('^' +
12666
- fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
12667
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
12668
- );
12669
-
12670
- /**
12671
- * Gets the native function at `key` of `object`.
12672
- *
12673
- * @private
12674
- * @param {Object} object The object to query.
12675
- * @param {string} key The key of the method to get.
12676
- * @returns {*} Returns the function if it's native, else `undefined`.
12677
- */
12678
- function getNative(object, key) {
12679
- var value = object == null ? undefined : object[key];
12680
- return isNative(value) ? value : undefined;
12681
- }
12682
-
12683
- /**
12684
- * Checks if `value` is classified as a `Function` object.
12685
- *
12686
- * @static
12687
- * @memberOf _
12688
- * @category Lang
12689
- * @param {*} value The value to check.
12690
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
12691
- * @example
12692
- *
12693
- * _.isFunction(_);
12694
- * // => true
12695
- *
12696
- * _.isFunction(/abc/);
12697
- * // => false
12698
- */
12699
- function isFunction(value) {
12700
- // The use of `Object#toString` avoids issues with the `typeof` operator
12701
- // in older versions of Chrome and Safari which return 'function' for regexes
12702
- // and Safari 8 equivalents which return 'object' for typed array constructors.
12703
- return isObject(value) && objToString.call(value) == funcTag;
12704
- }
12705
-
12706
- /**
12707
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
12708
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
12709
- *
12710
- * @static
12711
- * @memberOf _
12712
- * @category Lang
12713
- * @param {*} value The value to check.
12714
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
12715
- * @example
12716
- *
12717
- * _.isObject({});
12718
- * // => true
12719
- *
12720
- * _.isObject([1, 2, 3]);
12721
- * // => true
12722
- *
12723
- * _.isObject(1);
12724
- * // => false
12725
- */
12726
- function isObject(value) {
12727
- // Avoid a V8 JIT bug in Chrome 19-20.
12728
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
12729
- var type = typeof value;
12730
- return !!value && (type == 'object' || type == 'function');
12731
- }
12732
-
12733
- /**
12734
- * Checks if `value` is a native function.
12735
- *
12736
- * @static
12737
- * @memberOf _
12738
- * @category Lang
12739
- * @param {*} value The value to check.
12740
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
12741
- * @example
12742
- *
12743
- * _.isNative(Array.prototype.push);
12744
- * // => true
12745
- *
12746
- * _.isNative(_);
12747
- * // => false
12748
- */
12749
- function isNative(value) {
12750
- if (value == null) {
12751
- return false;
12752
- }
12753
- if (isFunction(value)) {
12754
- return reIsNative.test(fnToString.call(value));
12755
- }
12756
- return isObjectLike(value) && reIsHostCtor.test(value);
12757
- }
12758
-
12759
- module.exports = getNative;
12760
-
12761
- },{}],75:[function(require,module,exports){
12762
- /**
12763
- * lodash 3.0.4 (Custom Build) <https://lodash.com/>
12764
- * Build: `lodash modern modularize exports="npm" -o ./`
12765
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
12766
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
12767
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
12768
- * Available under MIT license <https://lodash.com/license>
12769
- */
12770
-
12771
- /**
12772
- * Checks if `value` is object-like.
12773
- *
12774
- * @private
12775
- * @param {*} value The value to check.
12776
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
12777
- */
12778
- function isObjectLike(value) {
12779
- return !!value && typeof value == 'object';
12780
- }
12781
-
12782
- /** Used for native method references. */
12783
- var objectProto = Object.prototype;
12784
-
12785
- /** Used to check objects for own properties. */
12786
- var hasOwnProperty = objectProto.hasOwnProperty;
12787
-
12788
- /** Native method references. */
12789
- var propertyIsEnumerable = objectProto.propertyIsEnumerable;
12790
-
12791
- /**
12792
- * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
12793
- * of an array-like value.
12794
- */
12795
- var MAX_SAFE_INTEGER = 9007199254740991;
12796
-
12797
- /**
12798
- * The base implementation of `_.property` without support for deep paths.
12799
- *
12800
- * @private
12801
- * @param {string} key The key of the property to get.
12802
- * @returns {Function} Returns the new function.
12803
- */
12804
- function baseProperty(key) {
12805
- return function(object) {
12806
- return object == null ? undefined : object[key];
12807
- };
12808
- }
12809
-
12810
- /**
12811
- * Gets the "length" property value of `object`.
12812
- *
12813
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
12814
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
12815
- *
12816
- * @private
12817
- * @param {Object} object The object to query.
12818
- * @returns {*} Returns the "length" value.
12819
- */
12820
- var getLength = baseProperty('length');
12821
-
12822
- /**
12823
- * Checks if `value` is array-like.
12824
- *
12825
- * @private
12826
- * @param {*} value The value to check.
12827
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
12828
- */
12829
- function isArrayLike(value) {
12830
- return value != null && isLength(getLength(value));
12831
- }
12832
-
12833
- /**
12834
- * Checks if `value` is a valid array-like length.
12835
- *
12836
- * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
12837
- *
12838
- * @private
12839
- * @param {*} value The value to check.
12840
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
12841
- */
12842
- function isLength(value) {
12843
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
12844
- }
12845
-
12846
- /**
12847
- * Checks if `value` is classified as an `arguments` object.
12848
- *
12849
- * @static
12850
- * @memberOf _
12851
- * @category Lang
12852
- * @param {*} value The value to check.
12853
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
12854
- * @example
12855
- *
12856
- * _.isArguments(function() { return arguments; }());
12857
- * // => true
12858
- *
12859
- * _.isArguments([1, 2, 3]);
12860
- * // => false
12861
- */
12862
- function isArguments(value) {
12863
- return isObjectLike(value) && isArrayLike(value) &&
12864
- hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
12865
- }
12866
-
12867
- module.exports = isArguments;
12868
-
12869
- },{}],76:[function(require,module,exports){
12870
- /**
12871
- * lodash 3.0.4 (Custom Build) <https://lodash.com/>
12872
- * Build: `lodash modern modularize exports="npm" -o ./`
12873
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
12874
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
12875
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
12876
- * Available under MIT license <https://lodash.com/license>
12877
- */
12878
-
12879
- /** `Object#toString` result references. */
12880
- var arrayTag = '[object Array]',
12881
- funcTag = '[object Function]';
12882
-
12883
- /** Used to detect host constructors (Safari > 5). */
12884
- var reIsHostCtor = /^\[object .+?Constructor\]$/;
12885
-
12886
- /**
12887
- * Checks if `value` is object-like.
12888
- *
12889
- * @private
12890
- * @param {*} value The value to check.
12891
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
12892
- */
12893
- function isObjectLike(value) {
12894
- return !!value && typeof value == 'object';
12895
- }
12896
-
12897
- /** Used for native method references. */
12898
- var objectProto = Object.prototype;
12899
-
12900
- /** Used to resolve the decompiled source of functions. */
12901
- var fnToString = Function.prototype.toString;
12902
-
12903
- /** Used to check objects for own properties. */
12904
- var hasOwnProperty = objectProto.hasOwnProperty;
12905
-
12906
- /**
12907
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
12908
- * of values.
12909
- */
12910
- var objToString = objectProto.toString;
12911
-
12912
- /** Used to detect if a method is native. */
12913
- var reIsNative = RegExp('^' +
12914
- fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
12915
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
12916
- );
12917
-
12918
- /* Native method references for those with the same name as other `lodash` methods. */
12919
- var nativeIsArray = getNative(Array, 'isArray');
12920
-
12921
- /**
12922
- * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
12923
- * of an array-like value.
12924
- */
12925
- var MAX_SAFE_INTEGER = 9007199254740991;
12926
-
12927
- /**
12928
- * Gets the native function at `key` of `object`.
12929
- *
12930
- * @private
12931
- * @param {Object} object The object to query.
12932
- * @param {string} key The key of the method to get.
12933
- * @returns {*} Returns the function if it's native, else `undefined`.
12934
- */
12935
- function getNative(object, key) {
12936
- var value = object == null ? undefined : object[key];
12937
- return isNative(value) ? value : undefined;
12938
- }
12939
-
12940
- /**
12941
- * Checks if `value` is a valid array-like length.
12942
- *
12943
- * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
12944
- *
12945
- * @private
12946
- * @param {*} value The value to check.
12947
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
12948
- */
12949
- function isLength(value) {
12950
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
12951
- }
12952
-
12953
- /**
12954
- * Checks if `value` is classified as an `Array` object.
12955
- *
12956
- * @static
12957
- * @memberOf _
12958
- * @category Lang
12959
- * @param {*} value The value to check.
12960
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
12961
- * @example
12962
- *
12963
- * _.isArray([1, 2, 3]);
12964
- * // => true
12965
- *
12966
- * _.isArray(function() { return arguments; }());
12967
- * // => false
12968
- */
12969
- var isArray = nativeIsArray || function(value) {
12970
- return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;
12971
- };
12972
-
12973
- /**
12974
- * Checks if `value` is classified as a `Function` object.
12975
- *
12976
- * @static
12977
- * @memberOf _
12978
- * @category Lang
12979
- * @param {*} value The value to check.
12980
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
12981
- * @example
12982
- *
12983
- * _.isFunction(_);
12984
- * // => true
12985
- *
12986
- * _.isFunction(/abc/);
12987
- * // => false
12988
- */
12989
- function isFunction(value) {
12990
- // The use of `Object#toString` avoids issues with the `typeof` operator
12991
- // in older versions of Chrome and Safari which return 'function' for regexes
12992
- // and Safari 8 equivalents which return 'object' for typed array constructors.
12993
- return isObject(value) && objToString.call(value) == funcTag;
12994
- }
12995
-
12996
- /**
12997
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
12998
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
12999
- *
13000
- * @static
13001
- * @memberOf _
13002
- * @category Lang
13003
- * @param {*} value The value to check.
13004
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
13005
- * @example
13006
- *
13007
- * _.isObject({});
13008
- * // => true
13009
- *
13010
- * _.isObject([1, 2, 3]);
13011
- * // => true
13012
- *
13013
- * _.isObject(1);
13014
- * // => false
13015
- */
13016
- function isObject(value) {
13017
- // Avoid a V8 JIT bug in Chrome 19-20.
13018
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
13019
- var type = typeof value;
13020
- return !!value && (type == 'object' || type == 'function');
13021
- }
13022
-
13023
- /**
13024
- * Checks if `value` is a native function.
13025
- *
13026
- * @static
13027
- * @memberOf _
13028
- * @category Lang
13029
- * @param {*} value The value to check.
13030
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
13031
- * @example
13032
- *
13033
- * _.isNative(Array.prototype.push);
13034
- * // => true
13035
- *
13036
- * _.isNative(_);
13037
- * // => false
13038
- */
13039
- function isNative(value) {
13040
- if (value == null) {
13041
- return false;
13042
- }
13043
- if (isFunction(value)) {
13044
- return reIsNative.test(fnToString.call(value));
13045
- }
13046
- return isObjectLike(value) && reIsHostCtor.test(value);
13047
- }
13048
-
13049
- module.exports = isArray;
13050
-
13051
- },{}],77:[function(require,module,exports){
13052
- /**
13053
- * lodash 3.0.3 (Custom Build) <https://lodash.com/>
13054
- * Build: `lodash modern modularize exports="npm" -o ./`
13055
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
13056
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
13057
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
13058
- * Available under MIT license <https://lodash.com/license>
13059
- */
13060
-
13061
- /**
13062
- * The base implementation of `_.create` without support for assigning
13063
- * properties to the created object.
13064
- *
13065
- * @private
13066
- * @param {Object} prototype The object to inherit from.
13067
- * @returns {Object} Returns the new object.
13068
- */
13069
- var baseCreate = (function() {
13070
- function object() {}
13071
- return function(prototype) {
13072
- if (isObject(prototype)) {
13073
- object.prototype = prototype;
13074
- var result = new object;
13075
- object.prototype = undefined;
13076
- }
13077
- return result || {};
13078
- };
13079
- }());
13080
-
13081
- /**
13082
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
13083
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
13084
- *
13085
- * @static
13086
- * @memberOf _
13087
- * @category Lang
13088
- * @param {*} value The value to check.
13089
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
13090
- * @example
13091
- *
13092
- * _.isObject({});
13093
- * // => true
13094
- *
13095
- * _.isObject([1, 2, 3]);
13096
- * // => true
13097
- *
13098
- * _.isObject(1);
13099
- * // => false
13100
- */
13101
- function isObject(value) {
13102
- // Avoid a V8 JIT bug in Chrome 19-20.
13103
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
13104
- var type = typeof value;
13105
- return !!value && (type == 'object' || type == 'function');
13106
- }
13107
-
13108
- module.exports = baseCreate;
13109
-
13110
- },{}],78:[function(require,module,exports){
13111
- /**
13112
- * lodash 3.0.9 (Custom Build) <https://lodash.com/>
13113
- * Build: `lodash modern modularize exports="npm" -o ./`
13114
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
13115
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
13116
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
13117
- * Available under MIT license <https://lodash.com/license>
13118
- */
13119
-
13120
- /** Used to detect unsigned integer values. */
13121
- var reIsUint = /^\d+$/;
13122
-
13123
- /**
13124
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
13125
- * of an array-like value.
13126
- */
13127
- var MAX_SAFE_INTEGER = 9007199254740991;
13128
-
13129
- /**
13130
- * The base implementation of `_.property` without support for deep paths.
13131
- *
13132
- * @private
13133
- * @param {string} key The key of the property to get.
13134
- * @returns {Function} Returns the new function.
13135
- */
13136
- function baseProperty(key) {
13137
- return function(object) {
13138
- return object == null ? undefined : object[key];
13139
- };
13140
- }
13141
-
13142
- /**
13143
- * Gets the "length" property value of `object`.
13144
- *
13145
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
13146
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
13147
- *
13148
- * @private
13149
- * @param {Object} object The object to query.
13150
- * @returns {*} Returns the "length" value.
13151
- */
13152
- var getLength = baseProperty('length');
13153
-
13154
- /**
13155
- * Checks if `value` is array-like.
13156
- *
13157
- * @private
13158
- * @param {*} value The value to check.
13159
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
13160
- */
13161
- function isArrayLike(value) {
13162
- return value != null && isLength(getLength(value));
13163
- }
13164
-
13165
- /**
13166
- * Checks if `value` is a valid array-like index.
13167
- *
13168
- * @private
13169
- * @param {*} value The value to check.
13170
- * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
13171
- * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
13172
- */
13173
- function isIndex(value, length) {
13174
- value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
13175
- length = length == null ? MAX_SAFE_INTEGER : length;
13176
- return value > -1 && value % 1 == 0 && value < length;
13177
- }
13178
-
13179
- /**
13180
- * Checks if the provided arguments are from an iteratee call.
13181
- *
13182
- * @private
13183
- * @param {*} value The potential iteratee value argument.
13184
- * @param {*} index The potential iteratee index or key argument.
13185
- * @param {*} object The potential iteratee object argument.
13186
- * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.
13187
- */
13188
- function isIterateeCall(value, index, object) {
13189
- if (!isObject(object)) {
13190
- return false;
13191
- }
13192
- var type = typeof index;
13193
- if (type == 'number'
13194
- ? (isArrayLike(object) && isIndex(index, object.length))
13195
- : (type == 'string' && index in object)) {
13196
- var other = object[index];
13197
- return value === value ? (value === other) : (other !== other);
13198
- }
13199
- return false;
13200
- }
13201
-
13202
- /**
13203
- * Checks if `value` is a valid array-like length.
13204
- *
13205
- * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
13206
- *
13207
- * @private
13208
- * @param {*} value The value to check.
13209
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
13210
- */
13211
- function isLength(value) {
13212
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
13213
- }
13214
-
13215
- /**
13216
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
13217
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
13218
- *
13219
- * @static
13220
- * @memberOf _
13221
- * @category Lang
13222
- * @param {*} value The value to check.
13223
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
13224
- * @example
13225
- *
13226
- * _.isObject({});
13227
- * // => true
13228
- *
13229
- * _.isObject([1, 2, 3]);
13230
- * // => true
13231
- *
13232
- * _.isObject(1);
13233
- * // => false
13234
- */
13235
- function isObject(value) {
13236
- // Avoid a V8 JIT bug in Chrome 19-20.
13237
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
13238
- var type = typeof value;
13239
- return !!value && (type == 'object' || type == 'function');
13240
- }
13241
-
13242
- module.exports = isIterateeCall;
13243
-
13244
- },{}],79:[function(require,module,exports){
13245
12230
  (function (process,global){
13246
12231
  /**
13247
12232
  * Shim process.stdout.
@@ -13406,4 +12391,4 @@ window.Mocha = Mocha;
13406
12391
  window.mocha = mocha;
13407
12392
 
13408
12393
  }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
13409
- },{"../":1,"_process":51,"browser-stdout":40}]},{},[79]);
12394
+ },{"../":1,"_process":51,"browser-stdout":40}]},{},[70]);