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
@@ -2,7 +2,7 @@
2
2
 
3
3
  /* global console */
4
4
  import { ENV } from '@ember/-internals/environment';
5
-
5
+ import { assert } from '@ember/debug';
6
6
  /**
7
7
  @module @ember/instrumentation
8
8
  @private
@@ -58,16 +58,14 @@ import { ENV } from '@ember/-internals/environment';
58
58
  @static
59
59
  @private
60
60
  */
61
+
61
62
  export let subscribers = [];
62
63
  let cache = {};
63
64
 
64
65
  function populateListeners(name) {
65
66
  let listeners = [];
66
- let subscriber;
67
-
68
- for (let i = 0; i < subscribers.length; i++) {
69
- subscriber = subscribers[i];
70
67
 
68
+ for (let subscriber of subscribers) {
71
69
  if (subscriber.regex.test(name)) {
72
70
  listeners.push(subscriber.object);
73
71
  }
@@ -172,16 +170,17 @@ export function _instrumentStart(name, payloadFunc, payloadArg) {
172
170
  let beforeValues = [];
173
171
  let timestamp = time();
174
172
 
175
- for (let i = 0; i < listeners.length; i++) {
176
- let listener = listeners[i];
173
+ for (let listener of listeners) {
177
174
  beforeValues.push(listener.before(name, timestamp, payload));
178
175
  }
179
176
 
177
+ const constListeners = listeners;
180
178
  return function _instrumentEnd() {
181
179
  let timestamp = time();
182
180
 
183
- for (let i = 0; i < listeners.length; i++) {
184
- let listener = listeners[i];
181
+ for (let i = 0; i < constListeners.length; i++) {
182
+ let listener = constListeners[i];
183
+ assert('has listener', listener); // Iterating over values
185
184
 
186
185
  if (typeof listener.after === 'function') {
187
186
  listener.after(name, timestamp, payload, beforeValues[i]);
@@ -209,12 +208,9 @@ export function _instrumentStart(name, payloadFunc, payloadArg) {
209
208
 
210
209
  export function subscribe(pattern, object) {
211
210
  let paths = pattern.split('.');
212
- let path;
213
211
  let regexes = [];
214
212
 
215
- for (let i = 0; i < paths.length; i++) {
216
- path = paths[i];
217
-
213
+ for (let path of paths) {
218
214
  if (path === '*') {
219
215
  regexes.push('[^\\.]*');
220
216
  } else {
@@ -24,21 +24,30 @@ let wrapGetterSetter = function (target, key, desc) {
24
24
  return desc;
25
25
  };
26
26
 
27
- export function dependentKeyCompat(target, key, desc) {
28
- if (!isElementDescriptor([target, key, desc])) {
29
- desc = target;
27
+ export function dependentKeyCompat(...args) {
28
+ if (isElementDescriptor(args)) {
29
+ let [target, key, desc] = args;
30
+ assert('The @dependentKeyCompat decorator must be applied to getters/setters when used in native classes', desc != null && (typeof desc.get === 'function' || typeof desc.set === 'function'));
31
+ return wrapGetterSetter(target, key, desc);
32
+ } else {
33
+ const desc = args[0];
34
+ assert('expected valid PropertyDescriptor', (value => {
35
+ if (value && typeof value === 'object') {
36
+ let cast = value;
37
+ return (cast.configurable === undefined || cast.configurable === false || cast.configurable === true) && (cast.enumerable === undefined || cast.enumerable === false || cast.enumerable === true) && (cast.writable === undefined || cast.writable === false || cast.writable === true) && (cast.get === undefined || typeof cast.get === 'function') && (cast.set === undefined || typeof cast.set === 'function');
38
+ }
39
+
40
+ return false;
41
+ })(desc));
30
42
 
31
43
  let decorator = function (target, key, _desc, _meta, isClassicDecorator) {
32
44
  assert('The @dependentKeyCompat decorator may only be passed a method when used in classic classes. You should decorate getters/setters directly in native classes', isClassicDecorator);
33
- assert('The dependentKeyCompat() decorator must be passed a getter or setter when used in classic classes', desc !== null && typeof desc === 'object' && (typeof desc.get === 'function' || typeof desc.set === 'function'));
45
+ assert('The dependentKeyCompat() decorator must be passed a getter or setter when used in classic classes', typeof desc.get === 'function' || typeof desc.set === 'function');
34
46
  return wrapGetterSetter(target, key, desc);
35
47
  };
36
48
 
37
49
  setClassicDecorator(decorator);
38
50
  return decorator;
39
51
  }
40
-
41
- assert('The @dependentKeyCompat decorator must be applied to getters/setters when used in native classes', desc !== null && typeof desc.get === 'function' || typeof desc.set === 'function');
42
- return wrapGetterSetter(target, key, desc);
43
52
  }
44
53
  setClassicDecorator(dependentKeyCompat);
@@ -28,6 +28,7 @@ export function assign(target, ...rest) {
28
28
  url: 'https://deprecations.emberjs.com/v4.x/#toc_ember-polyfills-deprecate-assign',
29
29
  for: 'ember-source',
30
30
  since: {
31
+ available: '4.0.0',
31
32
  enabled: '4.0.0'
32
33
  }
33
34
  });
@@ -0,0 +1 @@
1
+ export { RouterService as default } from '@ember/-internals/routing';
@@ -308,9 +308,9 @@ export function end() {
308
308
  @public
309
309
  */
310
310
 
311
- export function schedule()
312
- /* queue, target, method */
313
- {
311
+ export function
312
+ /* queue, target, method */
313
+ schedule() {
314
314
  return _backburner.schedule(...arguments);
315
315
  } // Used by global test teardown
316
316
 
@@ -352,9 +352,9 @@ export function _cancelTimers() {
352
352
  @public
353
353
  */
354
354
 
355
- export function later()
356
- /*target, method*/
357
- {
355
+ export function
356
+ /*target, method*/
357
+ later() {
358
358
  return _backburner.later(...arguments);
359
359
  }
360
360
  /**
@@ -450,9 +450,9 @@ export function once(...args) {
450
450
  @public
451
451
  */
452
452
 
453
- export function scheduleOnce()
454
- /* queue, target, method*/
455
- {
453
+ export function
454
+ /* queue, target, method*/
455
+ scheduleOnce() {
456
456
  return _backburner.scheduleOnce(...arguments);
457
457
  }
458
458
  /**
@@ -1,74 +1,10 @@
1
1
  import { FrameworkObject } from '@ember/-internals/runtime';
2
2
  import { inject as metalInject } from '@ember/-internals/metal';
3
- /**
4
- @module @ember/service
5
- @public
6
- */
7
-
8
- /**
9
- @method inject
10
- @static
11
- @since 1.10.0
12
- @for @ember/service
13
- @param {String} name (optional) name of the service to inject, defaults to
14
- the property's name
15
- @return {ComputedDecorator} injection decorator instance
16
- @public
17
- */
18
-
19
- export function inject() {
20
- return metalInject('service', ...arguments);
3
+ export function inject(...args) {
4
+ return metalInject('service', ...args);
21
5
  }
22
- /**
23
- Creates a property that lazily looks up a service in the container. There are
24
- no restrictions as to what objects a service can be injected into.
25
-
26
- Example:
27
-
28
- ```app/routes/application.js
29
- import Route from '@ember/routing/route';
30
- import { service } from '@ember/service';
31
-
32
- export default class ApplicationRoute extends Route {
33
- @service('auth') authManager;
34
-
35
- model() {
36
- return this.authManager.findCurrentUser();
37
- }
38
- }
39
- ```
40
-
41
- Classic Class Example:
42
-
43
- ```app/routes/application.js
44
- import Route from '@ember/routing/route';
45
- import { service } from '@ember/service';
46
-
47
- export default Route.extend({
48
- authManager: service('auth'),
49
-
50
- model() {
51
- return this.get('authManager').findCurrentUser();
52
- }
53
- });
54
- ```
55
-
56
- This example will create an `authManager` property on the application route
57
- that looks up the `auth` service in the container, making it easily accessible
58
- in the `model` hook.
59
-
60
- @method service
61
- @static
62
- @since 4.1.0
63
- @for @ember/service
64
- @param {String} name (optional) name of the service to inject, defaults to
65
- the property's name
66
- @return {ComputedDecorator} injection decorator instance
67
- @public
68
- */
69
-
70
- export function service() {
71
- return metalInject('service', ...arguments);
6
+ export function service(...args) {
7
+ return metalInject('service', ...args);
72
8
  }
73
9
  /**
74
10
  @class Service
@@ -77,8 +13,5 @@ export function service() {
77
13
  @public
78
14
  */
79
15
 
80
- const Service = FrameworkObject.extend();
81
- Service.reopenClass({
82
- isServiceFactory: true
83
- });
84
- export default Service;
16
+ export default class Service extends FrameworkObject {}
17
+ Service.isServiceFactory = true;
@@ -212,6 +212,7 @@ function deprecateImportFromString(name, message = `Importing ${name} from '@emb
212
212
  id: 'ember-string.htmlsafe-ishtmlsafe',
213
213
  for: 'ember-source',
214
214
  since: {
215
+ available: '3.25',
215
216
  enabled: '3.25'
216
217
  },
217
218
  until: '4.0.0',
@@ -16,8 +16,7 @@ import Service, { service } from '@ember/service';
16
16
  import { action, computed } from '@ember/object';
17
17
  import { dependentKeyCompat } from '@ember/object/compat';
18
18
  import { Object as EmberObject, RegistryProxyMixin, ContainerProxyMixin, compare, isEqual, Array as EmberArray, MutableEnumerable, MutableArray, Evented, PromiseProxyMixin, Observable, typeOf, isArray, _ProxyMixin, RSVP, Comparable, Namespace, Enumerable, ArrayProxy, ObjectProxy, ActionHandler, CoreObject, NativeArray, A } from '@ember/-internals/runtime';
19
- import { Component, componentCapabilities, modifierCapabilities, setComponentManager, escapeExpression, getTemplates, Helper, helper, htmlSafe, isHTMLSafe, setTemplates, template, Input, isSerializationFirstNode } from '@ember/-internals/glimmer'; // eslint-disable-next-line import/no-unresolved
20
-
19
+ import { Component, componentCapabilities, modifierCapabilities, setComponentManager, escapeExpression, getTemplates, Helper, helper, htmlSafe, isHTMLSafe, setTemplates, template, Input, isSerializationFirstNode } from '@ember/-internals/glimmer';
21
20
  import VERSION from './version';
22
21
  import * as views from '@ember/-internals/views';
23
22
  import * as routing from '@ember/-internals/routing';
@@ -1 +1 @@
1
- export default "4.3.0-alpha.1";
1
+ export default "4.3.0-beta.1";