ember-source 5.6.0-alpha.2 → 5.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.
- package/build-metadata.json +3 -3
- package/dist/dependencies/@glimmer/debug.js +1533 -0
- package/dist/dependencies/@glimmer/destroyable.js +30 -59
- package/dist/dependencies/@glimmer/encoder.js +13 -24
- package/dist/dependencies/@glimmer/global-context.js +38 -41
- package/dist/dependencies/@glimmer/manager.js +144 -326
- package/dist/dependencies/@glimmer/node.js +14 -46
- package/dist/dependencies/@glimmer/opcode-compiler.js +1673 -2478
- package/dist/dependencies/@glimmer/owner.js +2 -5
- package/dist/dependencies/@glimmer/program.js +102 -185
- package/dist/dependencies/@glimmer/reference.js +58 -126
- package/dist/dependencies/@glimmer/runtime.js +4674 -5639
- package/dist/dependencies/@glimmer/util.js +340 -326
- package/dist/dependencies/@glimmer/validator.js +160 -217
- package/dist/dependencies/@glimmer/vm.js +174 -23
- package/dist/dependencies/@glimmer/wire-format.js +91 -34
- package/dist/dependencies/@simple-dom/document.js +1 -1
- package/dist/dependencies/router_js.js +15 -16
- package/dist/dependencies/rsvp.js +89 -88
- package/dist/ember-template-compiler.js +8574 -8350
- package/dist/ember-template-compiler.map +1 -1
- package/dist/ember-testing.js +107 -107
- package/dist/ember-testing.map +1 -1
- package/dist/ember.debug.js +11199 -9636
- package/dist/ember.debug.map +1 -1
- package/dist/header/license.js +1 -1
- package/dist/packages/@ember/-internals/glimmer/index.js +93 -83
- package/dist/packages/@ember/-internals/metal/index.js +5 -4
- package/dist/packages/@ember/-internals/utils/index.js +3 -4
- package/dist/packages/@ember/array/-internals.js +1 -2
- package/dist/packages/@ember/debug/lib/inspect.js +0 -1
- package/dist/packages/@ember/object/core.js +0 -1
- package/dist/packages/@ember/object/mixin.js +1 -2
- package/dist/packages/@ember/routing/route.js +23 -101
- package/dist/packages/@ember/routing/router.js +25 -84
- package/dist/packages/ember/version.js +1 -1
- package/dist/packages/ember-babel.js +13 -0
- package/docs/data.json +218 -243
- package/lib/index.js +1 -5
- package/package.json +24 -19
- package/types/stable/@ember/-internals/glimmer/index.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +4 -4
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +3 -3
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +5 -8
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/root.d.ts +3 -3
- package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +3 -3
- package/types/stable/@ember/-internals/glimmer/lib/resolver.d.ts +3 -3
- package/types/stable/@ember/-internals/glimmer/lib/syntax/utils.d.ts +3 -2
- package/types/stable/@ember/-internals/glimmer/lib/utils/iterator.d.ts +2 -2
- package/types/stable/@ember/-internals/glimmer/lib/utils/outlet.d.ts +39 -18
- package/types/stable/@ember/-internals/utility-types/index.d.ts +1 -0
- package/types/stable/@ember/-internals/views/lib/system/utils.d.ts +4 -3
- package/types/stable/@ember/routing/route.d.ts +6 -28
- package/dist/dependencies/@glimmer/low-level.js +0 -77
|
@@ -2,122 +2,97 @@ import { DOMTreeConstruction, ConcreteBounds, NewElementBuilder } from '@glimmer
|
|
|
2
2
|
import createHTMLDocument from '@simple-dom/document';
|
|
3
3
|
|
|
4
4
|
class NodeDOMTreeConstruction extends DOMTreeConstruction {
|
|
5
|
+
// Hides property on base class
|
|
5
6
|
constructor(doc) {
|
|
6
7
|
super(doc || createHTMLDocument());
|
|
7
|
-
}
|
|
8
|
-
|
|
8
|
+
}
|
|
9
9
|
|
|
10
|
+
// override to prevent usage of `this.document` until after the constructor
|
|
10
11
|
setupUselessElement() {}
|
|
11
|
-
|
|
12
12
|
insertHTMLBefore(parent, reference, html) {
|
|
13
13
|
let raw = this.document.createRawHTMLSection(html);
|
|
14
14
|
parent.insertBefore(raw, reference);
|
|
15
15
|
return new ConcreteBounds(parent, raw, raw);
|
|
16
|
-
}
|
|
17
|
-
|
|
16
|
+
}
|
|
18
17
|
|
|
18
|
+
// override to avoid SVG detection/work when in node (this is not needed in SSR)
|
|
19
19
|
createElement(tag) {
|
|
20
20
|
return this.document.createElement(tag);
|
|
21
|
-
}
|
|
22
|
-
|
|
21
|
+
}
|
|
23
22
|
|
|
23
|
+
// override to avoid namespace shenanigans when in node (this is not needed in SSR)
|
|
24
24
|
setAttribute(element, name, value) {
|
|
25
25
|
element.setAttribute(name, value);
|
|
26
26
|
}
|
|
27
|
-
|
|
28
27
|
}
|
|
29
28
|
|
|
30
29
|
const TEXT_NODE = 3;
|
|
31
30
|
const NEEDS_EXTRA_CLOSE = new WeakMap();
|
|
32
|
-
|
|
33
31
|
function currentNode(cursor) {
|
|
34
32
|
let {
|
|
35
33
|
element,
|
|
36
34
|
nextSibling
|
|
37
35
|
} = cursor;
|
|
38
|
-
|
|
39
36
|
if (nextSibling === null) {
|
|
40
37
|
return element.lastChild;
|
|
41
38
|
} else {
|
|
42
39
|
return nextSibling.previousSibling;
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
|
-
|
|
46
42
|
class SerializeBuilder extends NewElementBuilder {
|
|
47
|
-
|
|
48
|
-
super(...arguments);
|
|
49
|
-
this.serializeBlockDepth = 0;
|
|
50
|
-
}
|
|
51
|
-
|
|
43
|
+
serializeBlockDepth = 0;
|
|
52
44
|
__openBlock() {
|
|
53
45
|
let {
|
|
54
46
|
tagName
|
|
55
47
|
} = this.element;
|
|
56
|
-
|
|
57
48
|
if (tagName !== 'TITLE' && tagName !== 'SCRIPT' && tagName !== 'STYLE') {
|
|
58
49
|
let depth = this.serializeBlockDepth++;
|
|
59
|
-
|
|
60
50
|
this.__appendComment(`%+b:${depth}%`);
|
|
61
51
|
}
|
|
62
|
-
|
|
63
52
|
super.__openBlock();
|
|
64
53
|
}
|
|
65
|
-
|
|
66
54
|
__closeBlock() {
|
|
67
55
|
let {
|
|
68
56
|
tagName
|
|
69
57
|
} = this.element;
|
|
70
|
-
|
|
71
58
|
super.__closeBlock();
|
|
72
|
-
|
|
73
59
|
if (tagName !== 'TITLE' && tagName !== 'SCRIPT' && tagName !== 'STYLE') {
|
|
74
60
|
let depth = --this.serializeBlockDepth;
|
|
75
|
-
|
|
76
61
|
this.__appendComment(`%-b:${depth}%`);
|
|
77
62
|
}
|
|
78
63
|
}
|
|
79
|
-
|
|
80
64
|
__appendHTML(html) {
|
|
81
65
|
let {
|
|
82
66
|
tagName
|
|
83
67
|
} = this.element;
|
|
84
|
-
|
|
85
68
|
if (tagName === 'TITLE' || tagName === 'SCRIPT' || tagName === 'STYLE') {
|
|
86
69
|
return super.__appendHTML(html);
|
|
87
|
-
}
|
|
88
|
-
|
|
70
|
+
}
|
|
89
71
|
|
|
72
|
+
// Do we need to run the html tokenizer here?
|
|
90
73
|
let first = this.__appendComment('%glmr%');
|
|
91
|
-
|
|
92
74
|
if (tagName === 'TABLE') {
|
|
93
75
|
let openIndex = html.indexOf('<');
|
|
94
|
-
|
|
95
76
|
if (openIndex > -1) {
|
|
96
77
|
let tr = html.slice(openIndex + 1, openIndex + 3);
|
|
97
|
-
|
|
98
78
|
if (tr === 'tr') {
|
|
99
79
|
html = `<tbody>${html}</tbody>`;
|
|
100
80
|
}
|
|
101
81
|
}
|
|
102
82
|
}
|
|
103
|
-
|
|
104
83
|
if (html === '') {
|
|
105
84
|
this.__appendComment('% %');
|
|
106
85
|
} else {
|
|
107
86
|
super.__appendHTML(html);
|
|
108
87
|
}
|
|
109
|
-
|
|
110
88
|
let last = this.__appendComment('%glmr%');
|
|
111
|
-
|
|
112
89
|
return new ConcreteBounds(this.element, first, last);
|
|
113
90
|
}
|
|
114
|
-
|
|
115
91
|
__appendText(string) {
|
|
116
92
|
let {
|
|
117
93
|
tagName
|
|
118
94
|
} = this.element;
|
|
119
95
|
let current = currentNode(this);
|
|
120
|
-
|
|
121
96
|
if (tagName === 'TITLE' || tagName === 'SCRIPT' || tagName === 'STYLE') {
|
|
122
97
|
return super.__appendText(string);
|
|
123
98
|
} else if (string === '') {
|
|
@@ -125,36 +100,31 @@ class SerializeBuilder extends NewElementBuilder {
|
|
|
125
100
|
} else if (current && current.nodeType === TEXT_NODE) {
|
|
126
101
|
this.__appendComment('%|%');
|
|
127
102
|
}
|
|
128
|
-
|
|
129
103
|
return super.__appendText(string);
|
|
130
104
|
}
|
|
131
|
-
|
|
132
105
|
closeElement() {
|
|
133
106
|
if (NEEDS_EXTRA_CLOSE.has(this.element)) {
|
|
134
107
|
NEEDS_EXTRA_CLOSE.delete(this.element);
|
|
135
108
|
super.closeElement();
|
|
136
109
|
}
|
|
137
|
-
|
|
138
110
|
return super.closeElement();
|
|
139
111
|
}
|
|
140
|
-
|
|
141
112
|
openElement(tag) {
|
|
142
113
|
if (tag === 'tr') {
|
|
143
114
|
if (this.element.tagName !== 'TBODY' && this.element.tagName !== 'THEAD' && this.element.tagName !== 'TFOOT') {
|
|
144
|
-
this.openElement('tbody');
|
|
115
|
+
this.openElement('tbody');
|
|
116
|
+
// This prevents the closeBlock comment from being re-parented
|
|
145
117
|
// under the auto inserted tbody. Rehydration builder needs to
|
|
146
118
|
// account for the insertion since it is injected here and not
|
|
147
119
|
// really in the template.
|
|
148
|
-
|
|
149
120
|
NEEDS_EXTRA_CLOSE.set(this.constructing, true);
|
|
150
121
|
this.flushElement(null);
|
|
151
122
|
}
|
|
152
123
|
}
|
|
153
|
-
|
|
154
124
|
return super.openElement(tag);
|
|
155
125
|
}
|
|
156
|
-
|
|
157
|
-
|
|
126
|
+
pushRemoteElement(element, cursorId) {
|
|
127
|
+
let insertBefore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
158
128
|
let {
|
|
159
129
|
dom
|
|
160
130
|
} = this;
|
|
@@ -163,9 +133,7 @@ class SerializeBuilder extends NewElementBuilder {
|
|
|
163
133
|
dom.insertBefore(element, script, insertBefore);
|
|
164
134
|
return super.pushRemoteElement(element, cursorId, insertBefore);
|
|
165
135
|
}
|
|
166
|
-
|
|
167
136
|
}
|
|
168
|
-
|
|
169
137
|
function serializeBuilder(env, cursor) {
|
|
170
138
|
return SerializeBuilder.forInitialRender(env, cursor);
|
|
171
139
|
}
|