Skip to content

Commit d96d9aa

Browse files
rwjbluekrisselden
andauthored
[FEATURE] Update Glimmer-VM to 0.45.0 (#18621)
[FEATURE] Update Glimmer-VM to 0.45.0 Co-authored-by: Kris Selden <[email protected]>
2 parents 08baa2f + 03e7132 commit d96d9aa

File tree

136 files changed

+2673
-3373
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

136 files changed

+2673
-3373
lines changed

broccoli/packages.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ function glimmerTrees(entries) {
254254
}
255255
seen.add(name);
256256

257-
if (!name.startsWith('@glimmer/')) {
257+
if (!name.startsWith('@glimmer/') && !name.startsWith('@simple-dom/')) {
258258
continue;
259259
}
260260

@@ -284,7 +284,12 @@ module.exports.glimmerCompilerES = () => {
284284
};
285285

286286
module.exports.glimmerES = function glimmerES(environment) {
287-
let glimmerEntries = ['@glimmer/node', '@glimmer/opcode-compiler', '@glimmer/runtime'];
287+
let glimmerEntries = [
288+
'@glimmer/node',
289+
'@simple-dom/document',
290+
'@glimmer/opcode-compiler',
291+
'@glimmer/runtime',
292+
];
288293

289294
if (environment === 'development') {
290295
let hasGlimmerDebug = true;

ember-cli-build.js

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ const rollupPackage = require('./broccoli/rollup-package');
1010
const minify = require('./broccoli/minify');
1111
const debugTree = require('broccoli-debug').buildDebugCallback('ember-source:ember-cli-build');
1212

13+
Error.stackTraceLimit = Infinity;
14+
1315
const {
1416
routerES,
1517
jquery,

package.json

+10-8
Original file line numberDiff line numberDiff line change
@@ -74,14 +74,16 @@
7474
},
7575
"devDependencies": {
7676
"@babel/preset-env": "^7.7.7",
77-
"@glimmer/compiler": "0.38.5-alpha.3",
77+
"@glimmer/compiler": "0.45.3",
7878
"@glimmer/env": "^0.1.7",
79-
"@glimmer/interfaces": "0.38.5-alpha.3",
80-
"@glimmer/node": "0.38.5-alpha.3",
81-
"@glimmer/opcode-compiler": "0.38.5-alpha.3",
82-
"@glimmer/program": "0.38.5-alpha.3",
83-
"@glimmer/reference": "0.38.5-alpha.3",
84-
"@glimmer/runtime": "0.38.5-alpha.3",
79+
"@glimmer/interfaces": "0.45.3",
80+
"@glimmer/node": "0.45.3",
81+
"@glimmer/opcode-compiler": "0.45.3",
82+
"@glimmer/program": "0.45.3",
83+
"@glimmer/reference": "0.45.3",
84+
"@glimmer/runtime": "0.45.3",
85+
"@glimmer/validator": "0.45.3",
86+
"@simple-dom/document": "^1.4.0",
8587
"@types/qunit": "^2.5.4",
8688
"@types/rsvp": "^4.0.3",
8789
"@typescript-eslint/parser": "^2.15.0",
@@ -98,7 +100,7 @@
98100
"broccoli-rollup": "^2.1.1",
99101
"broccoli-source": "^3.0.0",
100102
"broccoli-string-replace": "^0.1.2",
101-
"broccoli-typescript-compiler": "^4.1.0",
103+
"broccoli-typescript-compiler": "^4.2.0",
102104
"broccoli-uglify-sourcemap": "^3.1.1",
103105
"common-tags": "^1.8.0",
104106
"core-js": "^2.6.5",

packages/@ember/-internals/glimmer/index.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,6 @@ export { default as TextArea } from './lib/components/textarea';
352352
export { default as LinkComponent } from './lib/components/link-to';
353353
export { default as Component } from './lib/component';
354354
export { default as Helper, helper } from './lib/helper';
355-
export { default as Environment } from './lib/environment';
356355
export { SafeString, escapeExpression, htmlSafe, isHTMLSafe } from './lib/utils/string';
357356
export {
358357
Renderer,
@@ -380,9 +379,9 @@ export { default as AbstractComponentManager } from './lib/component-managers/ab
380379
// TODO just test these through public API
381380
// a lot of these are testing how a problem was solved
382381
// rather than the problem was solved
383-
export { UpdatableReference, INVOKE } from './lib/utils/references';
384-
export { default as iterableFor } from './lib/utils/iterable';
382+
export { INVOKE } from './lib/helpers/mut';
385383
export { default as OutletView } from './lib/views/outlet';
384+
export { OutletState } from './lib/utils/outlet';
386385
export { capabilities } from './lib/component-managers/custom';
387386
export { setComponentManager, getComponentManager } from './lib/utils/custom-component-manager';
388387
export { setModifierManager, getModifierManager } from './lib/utils/custom-modifier-manager';
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,28 @@
11
import { OwnedTemplateMeta } from '@ember/-internals/views';
22
import {
3-
CompilableTemplate,
4-
CompileTimeLookup as ICompileTimeLookup,
3+
CompileTimeComponent,
4+
CompileTimeResolverDelegate,
55
ComponentCapabilities,
6+
ComponentDefinition,
7+
ComponentManager,
68
Option,
7-
ProgramSymbolTable,
9+
WithJitStaticLayout,
810
} from '@glimmer/interfaces';
9-
import { ComponentDefinition, ComponentManager, WithStaticLayout } from '@glimmer/runtime';
1011
import RuntimeResolver from './resolver';
1112

12-
interface StaticComponentManager<DefinitionState>
13-
extends WithStaticLayout<any, DefinitionState, OwnedTemplateMeta, RuntimeResolver>,
14-
ComponentManager<any, DefinitionState> {}
13+
interface StaticComponentManager
14+
extends WithJitStaticLayout<unknown, unknown, RuntimeResolver>,
15+
ComponentManager<unknown, unknown> {}
1516

16-
export default class CompileTimeLookup implements ICompileTimeLookup<OwnedTemplateMeta> {
17-
constructor(private resolver: RuntimeResolver) {}
18-
19-
getCapabilities(handle: number): ComponentCapabilities {
20-
let definition = this.resolver.resolve<Option<ComponentDefinition>>(handle);
21-
let { manager, state } = definition!;
22-
return manager.getCapabilities(state);
23-
}
24-
25-
getLayout<DefinitionState>(handle: number): Option<CompilableTemplate<ProgramSymbolTable>> {
26-
const { manager, state } = this.resolver.resolve<
27-
ComponentDefinition<DefinitionState, StaticComponentManager<DefinitionState>>
28-
>(handle);
29-
const capabilities = manager.getCapabilities(state);
30-
31-
if (capabilities.dynamicLayout) {
32-
return null;
33-
}
17+
function isStaticComponentManager(
18+
_manager: ComponentManager,
19+
capabilities: ComponentCapabilities
20+
): _manager is StaticComponentManager {
21+
return !capabilities.dynamicLayout;
22+
}
3423

35-
const invocation = manager.getLayout(state, this.resolver);
36-
return {
37-
// TODO: this seems weird, it already is compiled
38-
compile() {
39-
return invocation.handle;
40-
},
41-
symbolTable: invocation.symbolTable,
42-
};
43-
}
24+
export default class CompileTimeResolver implements CompileTimeResolverDelegate<OwnedTemplateMeta> {
25+
constructor(private resolver: RuntimeResolver) {}
4426

4527
lookupHelper(name: string, referrer: OwnedTemplateMeta): Option<number> {
4628
return this.resolver.lookupHelper(name, referrer);
@@ -50,11 +32,38 @@ export default class CompileTimeLookup implements ICompileTimeLookup<OwnedTempla
5032
return this.resolver.lookupModifier(name, referrer);
5133
}
5234

53-
lookupComponentDefinition(name: string, referrer: OwnedTemplateMeta): Option<number> {
54-
return this.resolver.lookupComponentHandle(name, referrer);
35+
lookupComponent(name: string, referrer: OwnedTemplateMeta): Option<CompileTimeComponent> {
36+
let definitionHandle = this.resolver.lookupComponentHandle(name, referrer);
37+
38+
if (definitionHandle === null) {
39+
return null;
40+
}
41+
42+
const { manager, state } = this.resolver.resolve<ComponentDefinition<unknown, unknown>>(
43+
definitionHandle
44+
);
45+
const capabilities = manager.getCapabilities(state);
46+
47+
if (!isStaticComponentManager(manager, capabilities)) {
48+
return {
49+
handle: definitionHandle,
50+
capabilities,
51+
compilable: null,
52+
};
53+
}
54+
55+
return {
56+
handle: definitionHandle,
57+
capabilities,
58+
compilable: manager.getJitStaticLayout(state, this.resolver),
59+
};
5560
}
5661

5762
lookupPartial(name: string, referrer: OwnedTemplateMeta): Option<number> {
5863
return this.resolver.lookupPartial(name, referrer);
5964
}
65+
66+
resolve(handle: number): OwnedTemplateMeta {
67+
return this.resolver.resolve(handle);
68+
}
6069
}

packages/@ember/-internals/glimmer/lib/component-managers/abstract.ts

+14-11
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,41 @@
1-
import { ComponentCapabilities, Simple } from '@glimmer/interfaces';
2-
import { Tag, VersionedPathReference } from '@glimmer/reference';
31
import {
4-
Arguments,
52
Bounds,
3+
ComponentCapabilities,
64
ComponentManager,
5+
Destroyable,
76
DynamicScope,
87
ElementOperations,
9-
Environment,
8+
Option,
109
PreparedArguments,
11-
} from '@glimmer/runtime';
12-
import { Destroyable, Opaque, Option } from '@glimmer/util';
10+
VMArguments,
11+
} from '@glimmer/interfaces';
12+
import { VersionedPathReference } from '@glimmer/reference';
13+
import { Tag } from '@glimmer/validator';
14+
import { SimpleElement } from '@simple-dom/interface';
15+
import { EmberVMEnvironment } from '../environment';
1316

1417
// implements the ComponentManager interface as defined in glimmer:
1518
// tslint:disable-next-line:max-line-length
1619
// https://github.com/glimmerjs/glimmer-vm/blob/v0.24.0-beta.4/packages/%40glimmer/runtime/lib/component/interfaces.ts#L21
1720

1821
export default abstract class AbstractManager<T, U> implements ComponentManager<T, U> {
19-
prepareArgs(_state: U, _args: Arguments): Option<PreparedArguments> {
22+
prepareArgs(_state: U, _args: VMArguments): Option<PreparedArguments> {
2023
return null;
2124
}
2225

2326
abstract create(
24-
env: Environment,
27+
env: EmberVMEnvironment,
2528
definition: U,
26-
args: Arguments,
29+
args: VMArguments,
2730
dynamicScope: DynamicScope,
2831
caller: VersionedPathReference<void | {}>,
2932
hasDefaultBlock: boolean
3033
): T;
3134

32-
abstract getSelf(component: T): VersionedPathReference<Opaque>;
35+
abstract getSelf(component: T): VersionedPathReference<unknown>;
3336
abstract getCapabilities(state: U): ComponentCapabilities;
3437

35-
didCreateElement(_component: T, _element: Simple.Element, _operations: ElementOperations): void {
38+
didCreateElement(_component: T, _element: SimpleElement, _operations: ElementOperations): void {
3639
// noop
3740
}
3841

0 commit comments

Comments
 (0)