ember-source 4.3.0-alpha.1 → 4.3.0-beta.1

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 (71) hide show
  1. package/CHANGELOG.md +6 -2
  2. package/blueprints/component-addon/index.js +2 -3
  3. package/blueprints/component-class-addon/index.js +2 -3
  4. package/blueprints/controller/files/__root__/__path__/__name__.js +2 -2
  5. package/blueprints/controller/index.js +2 -4
  6. package/blueprints/route/files/__root__/__path__/__name__.js +3 -3
  7. package/blueprints/route/index.js +2 -3
  8. package/blueprints/service/files/__root__/__path__/__name__.js +2 -2
  9. package/blueprints/service/index.js +2 -4
  10. package/build-metadata.json +3 -3
  11. package/dist/dependencies/router_js.js +66 -31
  12. package/dist/ember-template-compiler.js +1250 -861
  13. package/dist/ember-template-compiler.map +1 -1
  14. package/dist/ember-testing.js +88 -56
  15. package/dist/ember-testing.map +1 -1
  16. package/dist/ember.debug.js +3712 -3159
  17. package/dist/ember.debug.map +1 -1
  18. package/dist/header/license.js +1 -1
  19. package/dist/header/loader.js +0 -1
  20. package/dist/packages/@ember/-internals/bootstrap/index.js +0 -2
  21. package/dist/packages/@ember/-internals/container/index.js +16 -11
  22. package/dist/packages/@ember/-internals/extension-support/lib/container_debug_adapter.js +3 -3
  23. package/dist/packages/@ember/-internals/extension-support/lib/data_adapter.js +52 -52
  24. package/dist/packages/@ember/-internals/glimmer/index.js +161 -125
  25. package/dist/packages/@ember/-internals/meta/lib/meta.js +67 -11
  26. package/dist/packages/@ember/-internals/metal/index.js +95 -121
  27. package/dist/packages/@ember/-internals/routing/lib/ext/controller.js +24 -12
  28. package/dist/packages/@ember/-internals/routing/lib/location/api.js +1 -0
  29. package/dist/packages/@ember/-internals/routing/lib/location/auto_location.js +3 -1
  30. package/dist/packages/@ember/-internals/routing/lib/services/router.js +117 -197
  31. package/dist/packages/@ember/-internals/routing/lib/services/routing.js +3 -1
  32. package/dist/packages/@ember/-internals/routing/lib/system/route-info.js +2 -2
  33. package/dist/packages/@ember/-internals/routing/lib/system/route.js +147 -402
  34. package/dist/packages/@ember/-internals/routing/lib/system/router.js +82 -40
  35. package/dist/packages/@ember/-internals/routing/lib/utils.js +48 -25
  36. package/dist/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +1 -1
  37. package/dist/packages/@ember/-internals/runtime/lib/mixins/array.js +1 -0
  38. package/dist/packages/@ember/-internals/runtime/lib/mixins/comparable.js +4 -4
  39. package/dist/packages/@ember/-internals/runtime/lib/mixins/container_proxy.js +29 -29
  40. package/dist/packages/@ember/-internals/runtime/lib/mixins/promise_proxy.js +16 -16
  41. package/dist/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.js +48 -48
  42. package/dist/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +8 -8
  43. package/dist/packages/@ember/-internals/runtime/lib/system/namespace.js +1 -2
  44. package/dist/packages/@ember/-internals/runtime/lib/type-of.js +1 -1
  45. package/dist/packages/@ember/-internals/utils/index.js +11 -9
  46. package/dist/packages/@ember/-internals/views/lib/mixins/view_support.js +2 -4
  47. package/dist/packages/@ember/-internals/views/lib/system/utils.js +2 -0
  48. package/dist/packages/@ember/application/lib/application.js +0 -2
  49. package/dist/packages/@ember/array/index.js +1 -1
  50. package/dist/packages/@ember/canary-features/index.js +2 -2
  51. package/dist/packages/@ember/controller/index.js +3 -54
  52. package/dist/packages/@ember/debug/index.js +1 -1
  53. package/dist/packages/@ember/debug/lib/deprecate.js +12 -10
  54. package/dist/packages/@ember/instrumentation/index.js +9 -13
  55. package/dist/packages/@ember/object/compat.js +16 -7
  56. package/dist/packages/@ember/polyfills/lib/assign.js +1 -0
  57. package/dist/packages/@ember/routing/router-service.js +1 -0
  58. package/dist/packages/@ember/runloop/index.js +9 -9
  59. package/dist/packages/@ember/service/index.js +6 -73
  60. package/dist/packages/@ember/string/index.js +1 -0
  61. package/dist/packages/ember/index.js +1 -2
  62. package/dist/packages/ember/version.js +1 -1
  63. package/docs/data.json +2588 -1839
  64. package/package.json +27 -27
  65. package/blueprints/component-addon/native-files/__root__/__path__/__name__.js +0 -1
  66. package/blueprints/component-class-addon/native-files/__root__/__path__/__name__.js +0 -1
  67. package/blueprints/controller/native-files/__root__/__path__/__name__.js +0 -4
  68. package/blueprints/edition-detector.js +0 -13
  69. package/blueprints/route/native-files/__root__/__path__/__name__.js +0 -11
  70. package/blueprints/route/native-files/__root__/__templatepath__/__templatename__.hbs +0 -2
  71. package/blueprints/service/native-files/__root__/__path__/__name__.js +0 -4
@@ -36,9 +36,16 @@ export const UNDEFINED = symbol('undefined');
36
36
  let currentListenerVersion = 1;
37
37
  export class Meta {
38
38
  // DEBUG
39
+
40
+ /** @internal */
39
41
  constructor(obj) {
42
+ /** @internal */
40
43
  this._listenersVersion = 1;
44
+ /** @internal */
45
+
41
46
  this._inheritedEnd = -1;
47
+ /** @internal */
48
+
42
49
  this._flattenedVersion = 0;
43
50
 
44
51
  if (DEBUG) {
@@ -59,6 +66,8 @@ export class Meta {
59
66
  this.proto = obj.constructor === undefined ? undefined : obj.constructor.prototype;
60
67
  this._listeners = undefined;
61
68
  }
69
+ /** @internal */
70
+
62
71
 
63
72
  get parent() {
64
73
  let parent = this._parent;
@@ -74,26 +83,38 @@ export class Meta {
74
83
  setInitializing() {
75
84
  this._isInit = true;
76
85
  }
86
+ /** @internal */
87
+
77
88
 
78
89
  unsetInitializing() {
79
90
  this._isInit = false;
80
91
  }
92
+ /** @internal */
93
+
81
94
 
82
95
  isInitializing() {
83
96
  return this._isInit;
84
97
  }
98
+ /** @internal */
99
+
85
100
 
86
101
  isPrototypeMeta(obj) {
87
102
  return this.proto === this.source && this.source === obj;
88
103
  }
104
+ /** @internal */
105
+
89
106
 
90
107
  _getOrCreateOwnMap(key) {
91
108
  return this[key] || (this[key] = Object.create(null));
92
109
  }
110
+ /** @internal */
111
+
93
112
 
94
113
  _getOrCreateOwnSet(key) {
95
114
  return this[key] || (this[key] = new Set());
96
115
  }
116
+ /** @internal */
117
+
97
118
 
98
119
  _findInheritedMap(key, subkey) {
99
120
  let pointer = this;
@@ -112,6 +133,8 @@ export class Meta {
112
133
  pointer = pointer.parent;
113
134
  }
114
135
  }
136
+ /** @internal */
137
+
115
138
 
116
139
  _hasInInheritedSet(key, value) {
117
140
  let pointer = this;
@@ -128,28 +151,38 @@ export class Meta {
128
151
 
129
152
  return false;
130
153
  }
154
+ /** @internal */
155
+
131
156
 
132
157
  valueFor(key) {
133
158
  let values = this._values;
134
159
  return values !== undefined ? values[key] : undefined;
135
160
  }
161
+ /** @internal */
162
+
136
163
 
137
164
  setValueFor(key, value) {
138
165
  let values = this._getOrCreateOwnMap('_values');
139
166
 
140
167
  values[key] = value;
141
168
  }
169
+ /** @internal */
170
+
142
171
 
143
172
  revisionFor(key) {
144
173
  let revisions = this._revisions;
145
174
  return revisions !== undefined ? revisions[key] : undefined;
146
175
  }
176
+ /** @internal */
177
+
147
178
 
148
179
  setRevisionFor(key, revision) {
149
180
  let revisions = this._getOrCreateOwnMap('_revisions');
150
181
 
151
182
  revisions[key] = revision;
152
183
  }
184
+ /** @internal */
185
+
153
186
 
154
187
  writableLazyChainsFor(key) {
155
188
  if (DEBUG) {
@@ -166,6 +199,8 @@ export class Meta {
166
199
 
167
200
  return chains;
168
201
  }
202
+ /** @internal */
203
+
169
204
 
170
205
  readableLazyChainsFor(key) {
171
206
  if (DEBUG) {
@@ -180,6 +215,8 @@ export class Meta {
180
215
 
181
216
  return undefined;
182
217
  }
218
+ /** @internal */
219
+
183
220
 
184
221
  addMixin(mixin) {
185
222
  assert(isDestroyed(this.source) ? `Cannot add mixins of \`${toString(mixin)}\` on \`${toString(this.source)}\` call addMixin after it has been destroyed.` : '', !isDestroyed(this.source));
@@ -188,10 +225,14 @@ export class Meta {
188
225
 
189
226
  set.add(mixin);
190
227
  }
228
+ /** @internal */
229
+
191
230
 
192
231
  hasMixin(mixin) {
193
232
  return this._hasInInheritedSet('_mixins', mixin);
194
233
  }
234
+ /** @internal */
235
+
195
236
 
196
237
  forEachMixins(fn) {
197
238
  let pointer = this;
@@ -214,22 +255,30 @@ export class Meta {
214
255
  pointer = pointer.parent;
215
256
  }
216
257
  }
258
+ /** @internal */
259
+
217
260
 
218
261
  writeDescriptors(subkey, value) {
219
262
  assert(isDestroyed(this.source) ? `Cannot update descriptors for \`${subkey}\` on \`${toString(this.source)}\` after it has been destroyed.` : '', !isDestroyed(this.source));
220
263
  let map = this._descriptors || (this._descriptors = new Map());
221
264
  map.set(subkey, value);
222
265
  }
266
+ /** @internal */
267
+
223
268
 
224
269
  peekDescriptors(subkey) {
225
270
  let possibleDesc = this._findInheritedMap('_descriptors', subkey);
226
271
 
227
272
  return possibleDesc === UNDEFINED ? undefined : possibleDesc;
228
273
  }
274
+ /** @internal */
275
+
229
276
 
230
277
  removeDescriptors(subkey) {
231
278
  this.writeDescriptors(subkey, UNDEFINED);
232
279
  }
280
+ /** @internal */
281
+
233
282
 
234
283
  forEachDescriptors(fn) {
235
284
  let pointer = this;
@@ -254,6 +303,8 @@ export class Meta {
254
303
  pointer = pointer.parent;
255
304
  }
256
305
  }
306
+ /** @internal */
307
+
257
308
 
258
309
  addToListeners(eventName, target, method, once, sync) {
259
310
  if (DEBUG) {
@@ -266,6 +317,8 @@ export class Meta {
266
317
  /* ADD */
267
318
  , sync);
268
319
  }
320
+ /** @internal */
321
+
269
322
 
270
323
  removeFromListeners(eventName, target, method) {
271
324
  if (DEBUG) {
@@ -303,7 +356,8 @@ export class Meta {
303
356
  sync
304
357
  });
305
358
  } else {
306
- let listener = listeners[i]; // If the listener is our own listener and we are trying to remove it, we
359
+ let listener = listeners[i];
360
+ assert('has listener', listener); // If the listener is our own listener and we are trying to remove it, we
307
361
  // want to splice it out entirely so we don't hold onto a reference.
308
362
 
309
363
  if (kind === 2
@@ -311,8 +365,8 @@ export class Meta {
311
365
  && listener.kind !== 2
312
366
  /* REMOVE */
313
367
  ) {
314
- listeners.splice(i, 1);
315
- } else {
368
+ listeners.splice(i, 1);
369
+ } else {
316
370
  assert(`You attempted to add an observer for the same method on '${event.split(':')[0]}' twice to ${target} as both sync and async. Observers must be either sync or async, they cannot be both. This is likely a mistake, you should either remove the code that added the observer a second time, or update it to always be sync or async. The method was ${method}.`, !(listener.kind === 0
317
371
  /* ADD */
318
372
  && kind === 0
@@ -394,8 +448,7 @@ export class Meta {
394
448
  this._inheritedEnd = 0;
395
449
  }
396
450
 
397
- for (let i = 0; i < parentListeners.length; i++) {
398
- let listener = parentListeners[i];
451
+ for (let listener of parentListeners) {
399
452
  let index = indexOfListener(listeners, listener.event, listener.target, listener.method);
400
453
 
401
454
  if (index === -1) {
@@ -416,6 +469,8 @@ export class Meta {
416
469
 
417
470
  return this._listeners;
418
471
  }
472
+ /** @internal */
473
+
419
474
 
420
475
  matchingListeners(eventName) {
421
476
  let listeners = this.flattenedListeners();
@@ -426,10 +481,9 @@ export class Meta {
426
481
  }
427
482
 
428
483
  if (listeners !== undefined) {
429
- for (let index = 0; index < listeners.length; index++) {
430
- let listener = listeners[index]; // REMOVE listeners are placeholders that tell us not to
484
+ for (let listener of listeners) {
485
+ // REMOVE listeners are placeholders that tell us not to
431
486
  // inherit, so they never match. Only ADD and ONCE can match.
432
-
433
487
  if (listener.event === eventName && (listener.kind === 0
434
488
  /* ADD */
435
489
  || listener.kind === 1
@@ -450,6 +504,8 @@ export class Meta {
450
504
 
451
505
  return result;
452
506
  }
507
+ /** @internal */
508
+
453
509
 
454
510
  observerEvents() {
455
511
  let listeners = this.flattenedListeners();
@@ -460,10 +516,9 @@ export class Meta {
460
516
  }
461
517
 
462
518
  if (listeners !== undefined) {
463
- for (let index = 0; index < listeners.length; index++) {
464
- let listener = listeners[index]; // REMOVE listeners are placeholders that tell us not to
519
+ for (let listener of listeners) {
520
+ // REMOVE listeners are placeholders that tell us not to
465
521
  // inherit, so they never match. Only ADD and ONCE can match.
466
-
467
522
  if ((listener.kind === 0
468
523
  /* ADD */
469
524
  || listener.kind === 1
@@ -585,6 +640,7 @@ export { counters };
585
640
  function indexOfListener(listeners, event, target, method) {
586
641
  for (let i = listeners.length - 1; i >= 0; i--) {
587
642
  let listener = listeners[i];
643
+ assert('has listener', listener);
588
644
 
589
645
  if (listener.event === event && listener.target === target && listener.method === method) {
590
646
  return i;