ember-source 4.6.0-alpha.2 → 4.6.0-alpha.3

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 (37) hide show
  1. package/build-metadata.json +3 -3
  2. package/dist/ember-template-compiler.js +2 -2
  3. package/dist/ember-template-compiler.map +1 -1
  4. package/dist/ember-testing.js +110 -129
  5. package/dist/ember-testing.map +1 -1
  6. package/dist/ember.debug.js +465 -525
  7. package/dist/ember.debug.map +1 -1
  8. package/dist/header/license.js +1 -1
  9. package/dist/packages/@ember/-internals/error-handling/index.js +1 -1
  10. package/dist/packages/@ember/-internals/metal/index.js +16 -6
  11. package/dist/packages/@ember/-internals/runtime/lib/compare.js +4 -3
  12. package/dist/packages/@ember/-internals/runtime/lib/mixins/array.js +281 -368
  13. package/dist/packages/@ember/-internals/runtime/lib/system/array_proxy.js +8 -5
  14. package/dist/packages/@ember/application/lib/application.js +4 -1
  15. package/dist/packages/@ember/engine/index.js +3 -1
  16. package/dist/packages/@ember/object/index.js +16 -8
  17. package/dist/packages/@ember/object/lib/computed/reduce_computed_macros.js +1 -1
  18. package/dist/packages/@ember/test/adapter.js +2 -2
  19. package/dist/packages/ember/version.js +1 -1
  20. package/dist/packages/ember-testing/lib/adapters/adapter.js +9 -20
  21. package/dist/packages/ember-testing/lib/adapters/qunit.js +8 -16
  22. package/dist/packages/ember-testing/lib/ext/application.js +28 -19
  23. package/dist/packages/ember-testing/lib/helpers/and_then.js +4 -1
  24. package/dist/packages/ember-testing/lib/helpers/current_path.js +5 -0
  25. package/dist/packages/ember-testing/lib/helpers/current_route_name.js +5 -0
  26. package/dist/packages/ember-testing/lib/helpers/current_url.js +8 -1
  27. package/dist/packages/ember-testing/lib/helpers/visit.js +12 -2
  28. package/dist/packages/ember-testing/lib/helpers/wait.js +6 -1
  29. package/dist/packages/ember-testing/lib/initializers.js +3 -3
  30. package/dist/packages/ember-testing/lib/test/adapter.js +2 -1
  31. package/dist/packages/ember-testing/lib/test/helpers.js +3 -1
  32. package/dist/packages/ember-testing/lib/test/on_inject_helpers.js +2 -2
  33. package/dist/packages/ember-testing/lib/test/promise.js +8 -8
  34. package/dist/packages/ember-testing/lib/test/waiters.js +14 -45
  35. package/dist/packages/ember-testing/lib/test.js +1 -1
  36. package/docs/data.json +268 -258
  37. package/package.json +3 -3
@@ -5,5 +5,5 @@
5
5
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
6
6
  * @license Licensed under MIT license
7
7
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
8
- * @version 4.6.0-alpha.2
8
+ * @version 4.6.0-alpha.3
9
9
  */
@@ -13,7 +13,7 @@ export function getOnerror() {
13
13
  export function setOnerror(handler) {
14
14
  onerror = handler;
15
15
  }
16
- let dispatchOverride; // allows testing adapter to override dispatch
16
+ let dispatchOverride = null; // allows testing adapter to override dispatch
17
17
 
18
18
  export function getDispatchOverride() {
19
19
  return dispatchOverride;
@@ -625,12 +625,19 @@ function objectAt(array, index) {
625
625
  } else {
626
626
  return array.objectAt(index);
627
627
  }
628
+ } // Ideally, we'd use MutableArray.detect but for unknown reasons this causes
629
+ // the node tests to fail strangely.
630
+
631
+ function isMutableArray(obj) {
632
+ return obj != null && typeof obj.replace === 'function';
628
633
  }
634
+
629
635
  function replace(array, start, deleteCount, items = EMPTY_ARRAY) {
630
- if (Array.isArray(array)) {
631
- replaceInNativeArray(array, start, deleteCount, items);
632
- } else {
636
+ if (isMutableArray(array)) {
633
637
  array.replace(start, deleteCount, items);
638
+ } else {
639
+ assert('Can only replace content of a native array or MutableArray', Array.isArray(array));
640
+ replaceInNativeArray(array, start, deleteCount, items);
634
641
  }
635
642
  }
636
643
  const CHUNK_SIZE = 60000; // To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.
@@ -3146,7 +3153,10 @@ class Mixin {
3146
3153
 
3147
3154
 
3148
3155
  keys() {
3149
- return _keys(this);
3156
+ let keys = _keys(this);
3157
+
3158
+ assert('[BUG] Missing keys for mixin!', keys);
3159
+ return keys;
3150
3160
  }
3151
3161
  /** @internal */
3152
3162
 
@@ -3222,8 +3232,8 @@ function _keys(mixin, ret = new Set(), seen = new Set()) {
3222
3232
  if (mixin.properties) {
3223
3233
  let props = Object.keys(mixin.properties);
3224
3234
 
3225
- for (let i = 0; i < props.length; i++) {
3226
- ret.add(props[i]);
3235
+ for (let prop of props) {
3236
+ ret.add(prop);
3227
3237
  }
3228
3238
  } else if (mixin.mixins) {
3229
3239
  mixin.mixins.forEach(x => _keys(x, ret, seen));
@@ -35,9 +35,10 @@ const TYPE_ORDER = {
35
35
  // SSt `------'`
36
36
 
37
37
  function spaceship(a, b) {
38
- let diff = a - b; // SAFETY: Number casts true into 1 and false into 0. Therefore, this must end up as one of the Compare values.
39
-
40
- return Number(diff > 0) - Number(diff < 0);
38
+ // SAFETY: `Math.sign` always returns `-1` for negative, `0` for zero, and `1`
39
+ // for positive numbers. (The extra precision is useful for the way we use
40
+ // this in the context of `compare`.)
41
+ return Math.sign(a - b);
41
42
  }
42
43
  /**
43
44
  @module @ember/utils