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.
Files changed (54) hide show
  1. package/build-metadata.json +3 -3
  2. package/dist/dependencies/@glimmer/debug.js +1533 -0
  3. package/dist/dependencies/@glimmer/destroyable.js +30 -59
  4. package/dist/dependencies/@glimmer/encoder.js +13 -24
  5. package/dist/dependencies/@glimmer/global-context.js +38 -41
  6. package/dist/dependencies/@glimmer/manager.js +144 -326
  7. package/dist/dependencies/@glimmer/node.js +14 -46
  8. package/dist/dependencies/@glimmer/opcode-compiler.js +1673 -2478
  9. package/dist/dependencies/@glimmer/owner.js +2 -5
  10. package/dist/dependencies/@glimmer/program.js +102 -185
  11. package/dist/dependencies/@glimmer/reference.js +58 -126
  12. package/dist/dependencies/@glimmer/runtime.js +4674 -5639
  13. package/dist/dependencies/@glimmer/util.js +340 -326
  14. package/dist/dependencies/@glimmer/validator.js +160 -217
  15. package/dist/dependencies/@glimmer/vm.js +174 -23
  16. package/dist/dependencies/@glimmer/wire-format.js +91 -34
  17. package/dist/dependencies/@simple-dom/document.js +1 -1
  18. package/dist/dependencies/router_js.js +15 -16
  19. package/dist/dependencies/rsvp.js +89 -88
  20. package/dist/ember-template-compiler.js +8574 -8350
  21. package/dist/ember-template-compiler.map +1 -1
  22. package/dist/ember-testing.js +107 -107
  23. package/dist/ember-testing.map +1 -1
  24. package/dist/ember.debug.js +11199 -9636
  25. package/dist/ember.debug.map +1 -1
  26. package/dist/header/license.js +1 -1
  27. package/dist/packages/@ember/-internals/glimmer/index.js +93 -83
  28. package/dist/packages/@ember/-internals/metal/index.js +5 -4
  29. package/dist/packages/@ember/-internals/utils/index.js +3 -4
  30. package/dist/packages/@ember/array/-internals.js +1 -2
  31. package/dist/packages/@ember/debug/lib/inspect.js +0 -1
  32. package/dist/packages/@ember/object/core.js +0 -1
  33. package/dist/packages/@ember/object/mixin.js +1 -2
  34. package/dist/packages/@ember/routing/route.js +23 -101
  35. package/dist/packages/@ember/routing/router.js +25 -84
  36. package/dist/packages/ember/version.js +1 -1
  37. package/dist/packages/ember-babel.js +13 -0
  38. package/docs/data.json +218 -243
  39. package/lib/index.js +1 -5
  40. package/package.json +24 -19
  41. package/types/stable/@ember/-internals/glimmer/index.d.ts +1 -1
  42. package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +4 -4
  43. package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +3 -3
  44. package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +5 -8
  45. package/types/stable/@ember/-internals/glimmer/lib/component-managers/root.d.ts +3 -3
  46. package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +3 -3
  47. package/types/stable/@ember/-internals/glimmer/lib/resolver.d.ts +3 -3
  48. package/types/stable/@ember/-internals/glimmer/lib/syntax/utils.d.ts +3 -2
  49. package/types/stable/@ember/-internals/glimmer/lib/utils/iterator.d.ts +2 -2
  50. package/types/stable/@ember/-internals/glimmer/lib/utils/outlet.d.ts +39 -18
  51. package/types/stable/@ember/-internals/utility-types/index.d.ts +1 -0
  52. package/types/stable/@ember/-internals/views/lib/system/utils.d.ts +4 -3
  53. package/types/stable/@ember/routing/route.d.ts +6 -28
  54. 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
- } // override to prevent usage of `this.document` until after the constructor
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
- } // override to avoid SVG detection/work when in node (this is not needed in SSR)
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
- } // override to avoid namespace shenanigans when in node (this is not needed in SSR)
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
- constructor() {
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
- } // Do we need to run the html tokenizer here?
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'); // This prevents the closeBlock comment from being re-parented
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
- pushRemoteElement(element, cursorId, insertBefore = null) {
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
  }