core-js 2.5.2 → 2.5.6

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.
Files changed (42) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/LICENSE +1 -1
  3. package/README.md +62 -62
  4. package/bower.json +1 -1
  5. package/client/core.js +646 -618
  6. package/client/core.min.js +5 -5
  7. package/client/core.min.js.map +1 -1
  8. package/client/library.js +563 -534
  9. package/client/library.min.js +5 -5
  10. package/client/library.min.js.map +1 -1
  11. package/client/shim.js +631 -603
  12. package/client/shim.min.js +5 -5
  13. package/client/shim.min.js.map +1 -1
  14. package/fn/number/parse-float.js +1 -1
  15. package/fn/number/parse-int.js +1 -1
  16. package/library/fn/number/parse-float.js +1 -1
  17. package/library/fn/number/parse-int.js +1 -1
  18. package/library/modules/_core.js +1 -1
  19. package/library/modules/_export.js +2 -1
  20. package/library/modules/_iter-define.js +1 -2
  21. package/library/modules/_microtask.js +2 -1
  22. package/library/modules/_shared.js +9 -3
  23. package/library/modules/_user-agent.js +4 -0
  24. package/library/modules/es6.promise.js +18 -12
  25. package/library/modules/es6.reflect.set.js +5 -3
  26. package/library/modules/es6.symbol.js +1 -1
  27. package/library/modules/es7.string.pad-end.js +3 -1
  28. package/library/modules/es7.string.pad-start.js +3 -1
  29. package/library/modules/web.timers.js +2 -2
  30. package/modules/_core.js +1 -1
  31. package/modules/_iter-define.js +1 -2
  32. package/modules/_microtask.js +2 -1
  33. package/modules/_shared.js +9 -3
  34. package/modules/_user-agent.js +4 -0
  35. package/modules/es6.promise.js +18 -12
  36. package/modules/es6.reflect.set.js +5 -3
  37. package/modules/es6.symbol.js +1 -1
  38. package/modules/es7.string.pad-end.js +3 -1
  39. package/modules/es7.string.pad-start.js +3 -1
  40. package/modules/library/_export.js +2 -1
  41. package/modules/web.timers.js +2 -2
  42. package/package.json +9 -9
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.number.parse-float');
2
- module.exports = parseFloat;
2
+ module.exports = require('../../modules/_core').Number.parseFloat;
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.number.parse-int');
2
- module.exports = parseInt;
2
+ module.exports = require('../../modules/_core').Number.parseInt;
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.number.parse-float');
2
- module.exports = parseFloat;
2
+ module.exports = require('../../modules/_core').Number.parseFloat;
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.number.parse-int');
2
- module.exports = parseInt;
2
+ module.exports = require('../../modules/_core').Number.parseInt;
@@ -1,2 +1,2 @@
1
- var core = module.exports = { version: '2.5.2' };
1
+ var core = module.exports = { version: '2.5.6' };
2
2
  if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
@@ -2,6 +2,7 @@ var global = require('./_global');
2
2
  var core = require('./_core');
3
3
  var ctx = require('./_ctx');
4
4
  var hide = require('./_hide');
5
+ var has = require('./_has');
5
6
  var PROTOTYPE = 'prototype';
6
7
 
7
8
  var $export = function (type, name, source) {
@@ -19,7 +20,7 @@ var $export = function (type, name, source) {
19
20
  for (key in source) {
20
21
  // contains in native
21
22
  own = !IS_FORCED && target && target[key] !== undefined;
22
- if (own && key in exports) continue;
23
+ if (own && has(exports, key)) continue;
23
24
  // export native or passed
24
25
  out = own ? target[key] : source[key];
25
26
  // prevent global pollution for namespaces
@@ -3,7 +3,6 @@ var LIBRARY = require('./_library');
3
3
  var $export = require('./_export');
4
4
  var redefine = require('./_redefine');
5
5
  var hide = require('./_hide');
6
- var has = require('./_has');
7
6
  var Iterators = require('./_iterators');
8
7
  var $iterCreate = require('./_iter-create');
9
8
  var setToStringTag = require('./_set-to-string-tag');
@@ -41,7 +40,7 @@ module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCE
41
40
  // Set @@toStringTag to native iterators
42
41
  setToStringTag(IteratorPrototype, TAG, true);
43
42
  // fix for some old engines
44
- if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);
43
+ if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
45
44
  }
46
45
  }
47
46
  // fix Array#{values, @@iterator}.name in V8 / FF
@@ -40,7 +40,8 @@ module.exports = function () {
40
40
  };
41
41
  // environments with maybe non-completely correct, but existent Promise
42
42
  } else if (Promise && Promise.resolve) {
43
- var promise = Promise.resolve();
43
+ // Promise.resolve without an argument throws an error in LG WebOS 2
44
+ var promise = Promise.resolve(undefined);
44
45
  notify = function () {
45
46
  promise.then(flush);
46
47
  };
@@ -1,6 +1,12 @@
1
+ var core = require('./_core');
1
2
  var global = require('./_global');
2
3
  var SHARED = '__core-js_shared__';
3
4
  var store = global[SHARED] || (global[SHARED] = {});
4
- module.exports = function (key) {
5
- return store[key] || (store[key] = {});
6
- };
5
+
6
+ (module.exports = function (key, value) {
7
+ return store[key] || (store[key] = value !== undefined ? value : {});
8
+ })('versions', []).push({
9
+ version: core.version,
10
+ mode: require('./_library') ? 'pure' : 'global',
11
+ copyright: '© 2018 Denis Pushkarev (zloirock.ru)'
12
+ });
@@ -0,0 +1,4 @@
1
+ var global = require('./_global');
2
+ var navigator = global.navigator;
3
+
4
+ module.exports = navigator && navigator.userAgent || '';
@@ -13,10 +13,13 @@ var task = require('./_task').set;
13
13
  var microtask = require('./_microtask')();
14
14
  var newPromiseCapabilityModule = require('./_new-promise-capability');
15
15
  var perform = require('./_perform');
16
+ var userAgent = require('./_user-agent');
16
17
  var promiseResolve = require('./_promise-resolve');
17
18
  var PROMISE = 'Promise';
18
19
  var TypeError = global.TypeError;
19
20
  var process = global.process;
21
+ var versions = process && process.versions;
22
+ var v8 = versions && versions.v8 || '';
20
23
  var $Promise = global[PROMISE];
21
24
  var isNode = classof(process) == 'process';
22
25
  var empty = function () { /* empty */ };
@@ -31,7 +34,13 @@ var USE_NATIVE = !!function () {
31
34
  exec(empty, empty);
32
35
  };
33
36
  // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
34
- return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
37
+ return (isNode || typeof PromiseRejectionEvent == 'function')
38
+ && promise.then(empty) instanceof FakePromise
39
+ // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
40
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
41
+ // we can't detect it synchronously, so just check versions
42
+ && v8.indexOf('6.6') !== 0
43
+ && userAgent.indexOf('Chrome/66') === -1;
35
44
  } catch (e) { /* empty */ }
36
45
  }();
37
46
 
@@ -53,7 +62,7 @@ var notify = function (promise, isReject) {
53
62
  var resolve = reaction.resolve;
54
63
  var reject = reaction.reject;
55
64
  var domain = reaction.domain;
56
- var result, then;
65
+ var result, then, exited;
57
66
  try {
58
67
  if (handler) {
59
68
  if (!ok) {
@@ -63,8 +72,11 @@ var notify = function (promise, isReject) {
63
72
  if (handler === true) result = value;
64
73
  else {
65
74
  if (domain) domain.enter();
66
- result = handler(value);
67
- if (domain) domain.exit();
75
+ result = handler(value); // may throw
76
+ if (domain) {
77
+ domain.exit();
78
+ exited = true;
79
+ }
68
80
  }
69
81
  if (result === reaction.promise) {
70
82
  reject(TypeError('Promise-chain cycle'));
@@ -73,6 +85,7 @@ var notify = function (promise, isReject) {
73
85
  } else resolve(result);
74
86
  } else reject(value);
75
87
  } catch (e) {
88
+ if (domain && !exited) domain.exit();
76
89
  reject(e);
77
90
  }
78
91
  };
@@ -104,14 +117,7 @@ var onUnhandled = function (promise) {
104
117
  });
105
118
  };
106
119
  var isUnhandled = function (promise) {
107
- if (promise._h == 1) return false;
108
- var chain = promise._a || promise._c;
109
- var i = 0;
110
- var reaction;
111
- while (chain.length > i) {
112
- reaction = chain[i++];
113
- if (reaction.fail || !isUnhandled(reaction.promise)) return false;
114
- } return true;
120
+ return promise._h !== 1 && (promise._a || promise._c).length === 0;
115
121
  };
116
122
  var onHandleUnhandled = function (promise) {
117
123
  task.call(global, function () {
@@ -20,9 +20,11 @@ function set(target, propertyKey, V /* , receiver */) {
20
20
  }
21
21
  if (has(ownDesc, 'value')) {
22
22
  if (ownDesc.writable === false || !isObject(receiver)) return false;
23
- existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
24
- existingDescriptor.value = V;
25
- dP.f(receiver, propertyKey, existingDescriptor);
23
+ if (existingDescriptor = gOPD.f(receiver, propertyKey)) {
24
+ if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
25
+ existingDescriptor.value = V;
26
+ dP.f(receiver, propertyKey, existingDescriptor);
27
+ } else dP.f(receiver, propertyKey, createDesc(0, V));
26
28
  return true;
27
29
  }
28
30
  return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
@@ -216,7 +216,7 @@ $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
216
216
  $replacer = replacer = args[1];
217
217
  if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
218
218
  if (!isArray(replacer)) replacer = function (key, value) {
219
- if ($replacer) value = $replacer.call(this, key, value);
219
+ if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
220
220
  if (!isSymbol(value)) return value;
221
221
  };
222
222
  args[1] = replacer;
@@ -2,8 +2,10 @@
2
2
  // https://github.com/tc39/proposal-string-pad-start-end
3
3
  var $export = require('./_export');
4
4
  var $pad = require('./_string-pad');
5
+ var userAgent = require('./_user-agent');
5
6
 
6
- $export($export.P, 'String', {
7
+ // https://github.com/zloirock/core-js/issues/280
8
+ $export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
7
9
  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {
8
10
  return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
9
11
  }
@@ -2,8 +2,10 @@
2
2
  // https://github.com/tc39/proposal-string-pad-start-end
3
3
  var $export = require('./_export');
4
4
  var $pad = require('./_string-pad');
5
+ var userAgent = require('./_user-agent');
5
6
 
6
- $export($export.P, 'String', {
7
+ // https://github.com/zloirock/core-js/issues/280
8
+ $export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
7
9
  padStart: function padStart(maxLength /* , fillString = ' ' */) {
8
10
  return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
9
11
  }
@@ -1,9 +1,9 @@
1
1
  // ie9- setTimeout & setInterval additional parameters fix
2
2
  var global = require('./_global');
3
3
  var $export = require('./_export');
4
- var navigator = global.navigator;
4
+ var userAgent = require('./_user-agent');
5
5
  var slice = [].slice;
6
- var MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
6
+ var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
7
7
  var wrap = function (set) {
8
8
  return function (fn, time /* , ...args */) {
9
9
  var boundArgs = arguments.length > 2;
package/modules/_core.js CHANGED
@@ -1,2 +1,2 @@
1
- var core = module.exports = { version: '2.5.2' };
1
+ var core = module.exports = { version: '2.5.6' };
2
2
  if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
@@ -3,7 +3,6 @@ var LIBRARY = require('./_library');
3
3
  var $export = require('./_export');
4
4
  var redefine = require('./_redefine');
5
5
  var hide = require('./_hide');
6
- var has = require('./_has');
7
6
  var Iterators = require('./_iterators');
8
7
  var $iterCreate = require('./_iter-create');
9
8
  var setToStringTag = require('./_set-to-string-tag');
@@ -41,7 +40,7 @@ module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCE
41
40
  // Set @@toStringTag to native iterators
42
41
  setToStringTag(IteratorPrototype, TAG, true);
43
42
  // fix for some old engines
44
- if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);
43
+ if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
45
44
  }
46
45
  }
47
46
  // fix Array#{values, @@iterator}.name in V8 / FF
@@ -40,7 +40,8 @@ module.exports = function () {
40
40
  };
41
41
  // environments with maybe non-completely correct, but existent Promise
42
42
  } else if (Promise && Promise.resolve) {
43
- var promise = Promise.resolve();
43
+ // Promise.resolve without an argument throws an error in LG WebOS 2
44
+ var promise = Promise.resolve(undefined);
44
45
  notify = function () {
45
46
  promise.then(flush);
46
47
  };
@@ -1,6 +1,12 @@
1
+ var core = require('./_core');
1
2
  var global = require('./_global');
2
3
  var SHARED = '__core-js_shared__';
3
4
  var store = global[SHARED] || (global[SHARED] = {});
4
- module.exports = function (key) {
5
- return store[key] || (store[key] = {});
6
- };
5
+
6
+ (module.exports = function (key, value) {
7
+ return store[key] || (store[key] = value !== undefined ? value : {});
8
+ })('versions', []).push({
9
+ version: core.version,
10
+ mode: require('./_library') ? 'pure' : 'global',
11
+ copyright: '© 2018 Denis Pushkarev (zloirock.ru)'
12
+ });
@@ -0,0 +1,4 @@
1
+ var global = require('./_global');
2
+ var navigator = global.navigator;
3
+
4
+ module.exports = navigator && navigator.userAgent || '';
@@ -13,10 +13,13 @@ var task = require('./_task').set;
13
13
  var microtask = require('./_microtask')();
14
14
  var newPromiseCapabilityModule = require('./_new-promise-capability');
15
15
  var perform = require('./_perform');
16
+ var userAgent = require('./_user-agent');
16
17
  var promiseResolve = require('./_promise-resolve');
17
18
  var PROMISE = 'Promise';
18
19
  var TypeError = global.TypeError;
19
20
  var process = global.process;
21
+ var versions = process && process.versions;
22
+ var v8 = versions && versions.v8 || '';
20
23
  var $Promise = global[PROMISE];
21
24
  var isNode = classof(process) == 'process';
22
25
  var empty = function () { /* empty */ };
@@ -31,7 +34,13 @@ var USE_NATIVE = !!function () {
31
34
  exec(empty, empty);
32
35
  };
33
36
  // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
34
- return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
37
+ return (isNode || typeof PromiseRejectionEvent == 'function')
38
+ && promise.then(empty) instanceof FakePromise
39
+ // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
40
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
41
+ // we can't detect it synchronously, so just check versions
42
+ && v8.indexOf('6.6') !== 0
43
+ && userAgent.indexOf('Chrome/66') === -1;
35
44
  } catch (e) { /* empty */ }
36
45
  }();
37
46
 
@@ -53,7 +62,7 @@ var notify = function (promise, isReject) {
53
62
  var resolve = reaction.resolve;
54
63
  var reject = reaction.reject;
55
64
  var domain = reaction.domain;
56
- var result, then;
65
+ var result, then, exited;
57
66
  try {
58
67
  if (handler) {
59
68
  if (!ok) {
@@ -63,8 +72,11 @@ var notify = function (promise, isReject) {
63
72
  if (handler === true) result = value;
64
73
  else {
65
74
  if (domain) domain.enter();
66
- result = handler(value);
67
- if (domain) domain.exit();
75
+ result = handler(value); // may throw
76
+ if (domain) {
77
+ domain.exit();
78
+ exited = true;
79
+ }
68
80
  }
69
81
  if (result === reaction.promise) {
70
82
  reject(TypeError('Promise-chain cycle'));
@@ -73,6 +85,7 @@ var notify = function (promise, isReject) {
73
85
  } else resolve(result);
74
86
  } else reject(value);
75
87
  } catch (e) {
88
+ if (domain && !exited) domain.exit();
76
89
  reject(e);
77
90
  }
78
91
  };
@@ -104,14 +117,7 @@ var onUnhandled = function (promise) {
104
117
  });
105
118
  };
106
119
  var isUnhandled = function (promise) {
107
- if (promise._h == 1) return false;
108
- var chain = promise._a || promise._c;
109
- var i = 0;
110
- var reaction;
111
- while (chain.length > i) {
112
- reaction = chain[i++];
113
- if (reaction.fail || !isUnhandled(reaction.promise)) return false;
114
- } return true;
120
+ return promise._h !== 1 && (promise._a || promise._c).length === 0;
115
121
  };
116
122
  var onHandleUnhandled = function (promise) {
117
123
  task.call(global, function () {
@@ -20,9 +20,11 @@ function set(target, propertyKey, V /* , receiver */) {
20
20
  }
21
21
  if (has(ownDesc, 'value')) {
22
22
  if (ownDesc.writable === false || !isObject(receiver)) return false;
23
- existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
24
- existingDescriptor.value = V;
25
- dP.f(receiver, propertyKey, existingDescriptor);
23
+ if (existingDescriptor = gOPD.f(receiver, propertyKey)) {
24
+ if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
25
+ existingDescriptor.value = V;
26
+ dP.f(receiver, propertyKey, existingDescriptor);
27
+ } else dP.f(receiver, propertyKey, createDesc(0, V));
26
28
  return true;
27
29
  }
28
30
  return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
@@ -216,7 +216,7 @@ $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
216
216
  $replacer = replacer = args[1];
217
217
  if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
218
218
  if (!isArray(replacer)) replacer = function (key, value) {
219
- if ($replacer) value = $replacer.call(this, key, value);
219
+ if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
220
220
  if (!isSymbol(value)) return value;
221
221
  };
222
222
  args[1] = replacer;
@@ -2,8 +2,10 @@
2
2
  // https://github.com/tc39/proposal-string-pad-start-end
3
3
  var $export = require('./_export');
4
4
  var $pad = require('./_string-pad');
5
+ var userAgent = require('./_user-agent');
5
6
 
6
- $export($export.P, 'String', {
7
+ // https://github.com/zloirock/core-js/issues/280
8
+ $export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
7
9
  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {
8
10
  return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
9
11
  }
@@ -2,8 +2,10 @@
2
2
  // https://github.com/tc39/proposal-string-pad-start-end
3
3
  var $export = require('./_export');
4
4
  var $pad = require('./_string-pad');
5
+ var userAgent = require('./_user-agent');
5
6
 
6
- $export($export.P, 'String', {
7
+ // https://github.com/zloirock/core-js/issues/280
8
+ $export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
7
9
  padStart: function padStart(maxLength /* , fillString = ' ' */) {
8
10
  return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
9
11
  }
@@ -2,6 +2,7 @@ var global = require('./_global');
2
2
  var core = require('./_core');
3
3
  var ctx = require('./_ctx');
4
4
  var hide = require('./_hide');
5
+ var has = require('./_has');
5
6
  var PROTOTYPE = 'prototype';
6
7
 
7
8
  var $export = function (type, name, source) {
@@ -19,7 +20,7 @@ var $export = function (type, name, source) {
19
20
  for (key in source) {
20
21
  // contains in native
21
22
  own = !IS_FORCED && target && target[key] !== undefined;
22
- if (own && key in exports) continue;
23
+ if (own && has(exports, key)) continue;
23
24
  // export native or passed
24
25
  out = own ? target[key] : source[key];
25
26
  // prevent global pollution for namespaces
@@ -1,9 +1,9 @@
1
1
  // ie9- setTimeout & setInterval additional parameters fix
2
2
  var global = require('./_global');
3
3
  var $export = require('./_export');
4
- var navigator = global.navigator;
4
+ var userAgent = require('./_user-agent');
5
5
  var slice = [].slice;
6
- var MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
6
+ var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
7
7
  var wrap = function (set) {
8
8
  return function (fn, time /* , ...args */) {
9
9
  var boundArgs = arguments.length > 2;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "core-js",
3
3
  "description": "Standard library",
4
- "version": "2.5.2",
4
+ "version": "2.5.6",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/zloirock/core-js.git"
@@ -10,27 +10,27 @@
10
10
  "devDependencies": {
11
11
  "LiveScript": "1.3.x",
12
12
  "es-observable-tests": "0.2.x",
13
- "eslint": "4.13.x",
14
- "eslint-plugin-import": "2.8.x",
15
- "grunt": "^1.0.1",
13
+ "eslint": "4.19.x",
14
+ "eslint-plugin-import": "2.11.x",
15
+ "grunt": "^1.0.2",
16
16
  "grunt-cli": "^1.2.0",
17
17
  "grunt-contrib-clean": "^1.1.0",
18
18
  "grunt-contrib-copy": "^1.0.0",
19
- "grunt-contrib-uglify": "3.2.x",
19
+ "grunt-contrib-uglify": "3.3.x",
20
20
  "grunt-contrib-watch": "^1.0.0",
21
21
  "grunt-karma": "^2.0.0",
22
22
  "grunt-livescript": "0.6.x",
23
- "karma": "^1.7.1",
24
- "karma-qunit": "1.2.x",
23
+ "karma": "^2.0.0",
24
+ "karma-qunit": "^2.0.1",
25
25
  "karma-chrome-launcher": "^2.2.0",
26
26
  "karma-firefox-launcher": "^1.0.1",
27
27
  "karma-ie-launcher": "^1.0.0",
28
28
  "karma-phantomjs-launcher": "1.0.x",
29
29
  "phantomjs-prebuilt": "2.1.x",
30
30
  "promises-aplus-tests": "^2.1.2",
31
- "qunitjs": "2.4.x",
31
+ "qunit": "2.6.x",
32
32
  "temp": "^0.8.3",
33
- "webpack": "^3.10.0"
33
+ "webpack": "^3.11.0"
34
34
  },
35
35
  "scripts": {
36
36
  "grunt": "grunt",