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.
- package/CHANGELOG.md +6 -2
- package/blueprints/component-addon/index.js +2 -3
- package/blueprints/component-class-addon/index.js +2 -3
- package/blueprints/controller/files/__root__/__path__/__name__.js +2 -2
- package/blueprints/controller/index.js +2 -4
- package/blueprints/route/files/__root__/__path__/__name__.js +3 -3
- package/blueprints/route/index.js +2 -3
- package/blueprints/service/files/__root__/__path__/__name__.js +2 -2
- package/blueprints/service/index.js +2 -4
- package/build-metadata.json +3 -3
- package/dist/dependencies/router_js.js +66 -31
- package/dist/ember-template-compiler.js +1250 -861
- package/dist/ember-template-compiler.map +1 -1
- package/dist/ember-testing.js +88 -56
- package/dist/ember-testing.map +1 -1
- package/dist/ember.debug.js +3712 -3159
- package/dist/ember.debug.map +1 -1
- package/dist/header/license.js +1 -1
- package/dist/header/loader.js +0 -1
- package/dist/packages/@ember/-internals/bootstrap/index.js +0 -2
- package/dist/packages/@ember/-internals/container/index.js +16 -11
- package/dist/packages/@ember/-internals/extension-support/lib/container_debug_adapter.js +3 -3
- package/dist/packages/@ember/-internals/extension-support/lib/data_adapter.js +52 -52
- package/dist/packages/@ember/-internals/glimmer/index.js +161 -125
- package/dist/packages/@ember/-internals/meta/lib/meta.js +67 -11
- package/dist/packages/@ember/-internals/metal/index.js +95 -121
- package/dist/packages/@ember/-internals/routing/lib/ext/controller.js +24 -12
- package/dist/packages/@ember/-internals/routing/lib/location/api.js +1 -0
- package/dist/packages/@ember/-internals/routing/lib/location/auto_location.js +3 -1
- package/dist/packages/@ember/-internals/routing/lib/services/router.js +117 -197
- package/dist/packages/@ember/-internals/routing/lib/services/routing.js +3 -1
- package/dist/packages/@ember/-internals/routing/lib/system/route-info.js +2 -2
- package/dist/packages/@ember/-internals/routing/lib/system/route.js +147 -402
- package/dist/packages/@ember/-internals/routing/lib/system/router.js +82 -40
- package/dist/packages/@ember/-internals/routing/lib/utils.js +48 -25
- package/dist/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +1 -1
- package/dist/packages/@ember/-internals/runtime/lib/mixins/array.js +1 -0
- package/dist/packages/@ember/-internals/runtime/lib/mixins/comparable.js +4 -4
- package/dist/packages/@ember/-internals/runtime/lib/mixins/container_proxy.js +29 -29
- package/dist/packages/@ember/-internals/runtime/lib/mixins/promise_proxy.js +16 -16
- package/dist/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.js +48 -48
- package/dist/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +8 -8
- package/dist/packages/@ember/-internals/runtime/lib/system/namespace.js +1 -2
- package/dist/packages/@ember/-internals/runtime/lib/type-of.js +1 -1
- package/dist/packages/@ember/-internals/utils/index.js +11 -9
- package/dist/packages/@ember/-internals/views/lib/mixins/view_support.js +2 -4
- package/dist/packages/@ember/-internals/views/lib/system/utils.js +2 -0
- package/dist/packages/@ember/application/lib/application.js +0 -2
- package/dist/packages/@ember/array/index.js +1 -1
- package/dist/packages/@ember/canary-features/index.js +2 -2
- package/dist/packages/@ember/controller/index.js +3 -54
- package/dist/packages/@ember/debug/index.js +1 -1
- package/dist/packages/@ember/debug/lib/deprecate.js +12 -10
- package/dist/packages/@ember/instrumentation/index.js +9 -13
- package/dist/packages/@ember/object/compat.js +16 -7
- package/dist/packages/@ember/polyfills/lib/assign.js +1 -0
- package/dist/packages/@ember/routing/router-service.js +1 -0
- package/dist/packages/@ember/runloop/index.js +9 -9
- package/dist/packages/@ember/service/index.js +6 -73
- package/dist/packages/@ember/string/index.js +1 -0
- package/dist/packages/ember/index.js +1 -2
- package/dist/packages/ember/version.js +1 -1
- package/docs/data.json +2588 -1839
- package/package.json +27 -27
- package/blueprints/component-addon/native-files/__root__/__path__/__name__.js +0 -1
- package/blueprints/component-class-addon/native-files/__root__/__path__/__name__.js +0 -1
- package/blueprints/controller/native-files/__root__/__path__/__name__.js +0 -4
- package/blueprints/edition-detector.js +0 -13
- package/blueprints/route/native-files/__root__/__path__/__name__.js +0 -11
- package/blueprints/route/native-files/__root__/__templatepath__/__templatename__.hbs +0 -2
- 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
|
|
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 <
|
|
184
|
-
let listener =
|
|
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
|
|
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(
|
|
28
|
-
if (
|
|
29
|
-
desc =
|
|
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',
|
|
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);
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
81
|
-
Service.
|
|
82
|
-
isServiceFactory: true
|
|
83
|
-
});
|
|
84
|
-
export default Service;
|
|
16
|
+
export default class Service extends FrameworkObject {}
|
|
17
|
+
Service.isServiceFactory = true;
|
|
@@ -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';
|
|
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-
|
|
1
|
+
export default "4.3.0-beta.1";
|