Skip to content

Commit e7bcee4

Browse files
authored
Move curried types to constants (#1664)
1 parent 9467509 commit e7bcee4

File tree

16 files changed

+47
-57
lines changed

16 files changed

+47
-57
lines changed

packages/@glimmer-workspace/integration-tests/lib/modes/jit/register.ts

+2-8
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ import type {
66
TemplateFactory,
77
} from '@glimmer/interfaces';
88
import type { CurriedValue } from '@glimmer/runtime';
9+
import { CURRIED_COMPONENT } from '@glimmer/constants';
910
import {
1011
getInternalComponentManager,
1112
setComponentTemplate,
1213
setInternalHelperManager,
1314
setInternalModifierManager,
1415
} from '@glimmer/manager';
1516
import { curry, templateOnlyComponent } from '@glimmer/runtime';
16-
import { CurriedTypes } from '@glimmer/vm';
1717

1818
import type { ComponentKind, ComponentTypes } from '../../components';
1919
import type { UserHelper } from '../../helpers';
@@ -168,11 +168,5 @@ export function componentHelper(
168168

169169
if (definition === null) return null;
170170

171-
return curry(
172-
CurriedTypes.Component,
173-
constants.resolvedComponent(definition, name),
174-
{},
175-
null,
176-
true
177-
);
171+
return curry(CURRIED_COMPONENT, constants.resolvedComponent(definition, name), {}, null, true);
178172
}

packages/@glimmer/compiler/lib/passes/1-normalization/keywords/append.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1+
import { CURRIED_COMPONENT, CURRIED_HELPER } from '@glimmer/constants';
12
import { ASTv2, generateSyntaxError, src } from '@glimmer/syntax';
2-
import { CurriedTypes } from '@glimmer/vm';
33

44
import type { NormalizationState } from '../context';
55

@@ -103,7 +103,7 @@ export const APPEND_KEYWORDS = keywords('Append')
103103
},
104104
})
105105
.kw('component', {
106-
assert: assertCurryKeyword(CurriedTypes.Component),
106+
assert: assertCurryKeyword(CURRIED_COMPONENT),
107107

108108
translate(
109109
{ node, state }: { node: ASTv2.AppendContent; state: NormalizationState },
@@ -124,7 +124,7 @@ export const APPEND_KEYWORDS = keywords('Append')
124124
},
125125
})
126126
.kw('helper', {
127-
assert: assertCurryKeyword(CurriedTypes.Helper),
127+
assert: assertCurryKeyword(CURRIED_HELPER),
128128

129129
translate(
130130
{ node, state }: { node: ASTv2.AppendContent; state: NormalizationState },

packages/@glimmer/compiler/lib/passes/1-normalization/keywords/block.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { ASTv2 } from '@glimmer/syntax';
2+
import { CURRIED_COMPONENT } from '@glimmer/constants';
23
import { generateSyntaxError } from '@glimmer/syntax';
3-
import { CurriedTypes } from '@glimmer/vm';
44

55
import type { NormalizationState } from '../context';
66

@@ -362,7 +362,7 @@ export const BLOCK_KEYWORDS = keywords('Block')
362362
},
363363
})
364364
.kw('component', {
365-
assert: assertCurryKeyword(CurriedTypes.Component),
365+
assert: assertCurryKeyword(CURRIED_COMPONENT),
366366

367367
translate(
368368
{ node, state }: { node: ASTv2.InvokeBlock; state: NormalizationState },

packages/@glimmer/compiler/lib/passes/1-normalization/keywords/call.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { CurriedTypes } from '@glimmer/vm';
1+
import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants';
22

33
import { keywords } from './impl';
44
import { curryKeyword } from './utils/curry';
@@ -14,6 +14,6 @@ export const CALL_KEYWORDS = keywords('Call')
1414
.kw('log', logKeyword)
1515
.kw('if', ifUnlessInlineKeyword('if'))
1616
.kw('unless', ifUnlessInlineKeyword('unless'))
17-
.kw('component', curryKeyword(CurriedTypes.Component))
18-
.kw('helper', curryKeyword(CurriedTypes.Helper))
19-
.kw('modifier', curryKeyword(CurriedTypes.Modifier));
17+
.kw('component', curryKeyword(CURRIED_COMPONENT))
18+
.kw('helper', curryKeyword(CURRIED_HELPER))
19+
.kw('modifier', curryKeyword(CURRIED_MODIFIER));

packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { CurriedType } from '@glimmer/interfaces';
2+
import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants';
23
import { ASTv2, generateSyntaxError } from '@glimmer/syntax';
3-
import { CurriedTypes } from '@glimmer/vm';
44

55
import type { NormalizationState } from '../../context';
66
import type { KeywordDelegate } from '../impl';
@@ -10,9 +10,9 @@ import * as mir from '../../../2-encoding/mir';
1010
import { VISIT_EXPRS } from '../../visitors/expressions';
1111

1212
const CurriedTypeToReadableType = {
13-
[CurriedTypes.Component]: 'component',
14-
[CurriedTypes.Helper]: 'helper',
15-
[CurriedTypes.Modifier]: 'modifier',
13+
[CURRIED_COMPONENT]: 'component',
14+
[CURRIED_HELPER]: 'helper',
15+
[CURRIED_MODIFIER]: 'modifier',
1616
} as const;
1717

1818
export function assertCurryKeyword(curriedType: CurriedType) {
@@ -24,7 +24,7 @@ export function assertCurryKeyword(curriedType: CurriedType) {
2424
args: ASTv2.Args;
2525
}> => {
2626
let readableType = CurriedTypeToReadableType[curriedType];
27-
let stringsAllowed = curriedType === CurriedTypes.Component;
27+
let stringsAllowed = curriedType === CURRIED_COMPONENT;
2828

2929
let { args } = node;
3030

packages/@glimmer/compiler/lib/passes/1-normalization/visitors/strict-mode.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { HasSourceSpan } from '@glimmer/syntax';
2+
import { CURRIED_COMPONENT, CURRIED_HELPER } from '@glimmer/constants';
23
import { generateSyntaxError, loc } from '@glimmer/syntax';
3-
import { CurriedTypes } from '@glimmer/vm';
44

55
import type { Result } from '../../../shared/result';
66
import type * as mir from '../../2-encoding/mir';
@@ -363,9 +363,9 @@ export default class StrictModeValidationPass {
363363
Curry(expression: mir.Curry): Result<null> {
364364
let resolution: ResolutionType;
365365

366-
if (expression.curriedType === CurriedTypes.Component) {
366+
if (expression.curriedType === CURRIED_COMPONENT) {
367367
resolution = COMPONENT_RESOLUTION;
368-
} else if (expression.curriedType === CurriedTypes.Helper) {
368+
} else if (expression.curriedType === CURRIED_HELPER) {
369369
resolution = HELPER_RESOLUTION;
370370
} else {
371371
resolution = MODIFIER_RESOLUTION;

packages/@glimmer/compiler/lib/wire-format-debug.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import type {
55
SerializedTemplateBlock,
66
WireFormat,
77
} from '@glimmer/interfaces';
8+
import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants';
89
import { exhausted } from '@glimmer/debug-util';
910
import { dict } from '@glimmer/util';
10-
import { CurriedTypes } from '@glimmer/vm';
1111
import { SexpOpcodes as Op } from '@glimmer/wire-format';
1212

1313
import { inflateAttrName, inflateTagName } from './utils';
@@ -248,11 +248,11 @@ export default class WireFormatDebugger {
248248

249249
private formatCurryType(value: CurriedType) {
250250
switch (value) {
251-
case CurriedTypes.Component:
251+
case CURRIED_COMPONENT:
252252
return 'component';
253-
case CurriedTypes.Helper:
253+
case CURRIED_HELPER:
254254
return 'helper';
255-
case CurriedTypes.Modifier:
255+
case CURRIED_MODIFIER:
256256
return 'modifier';
257257
default:
258258
throw exhausted(value);

packages/@glimmer/constants/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export * from './lib/builder-constants';
2+
export * from './lib/curried';
23
export * from './lib/dom';
34
export * from './lib/immediate';
45
export * from './lib/syscall-ops';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import type { CurriedComponent, CurriedHelper, CurriedModifier } from '@glimmer/interfaces';
2+
3+
export const CURRIED_COMPONENT = 0 satisfies CurriedComponent;
4+
export const CURRIED_HELPER = 1 satisfies CurriedHelper;
5+
export const CURRIED_MODIFIER = 2 satisfies CurriedModifier;

packages/@glimmer/runtime/lib/compiled/opcodes/component.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import type {
2626
} from '@glimmer/interfaces';
2727
import type { Reference } from '@glimmer/reference';
2828
import {
29+
CURRIED_COMPONENT,
2930
VM_BEGIN_COMPONENT_TRANSACTION_OP,
3031
VM_CAPTURE_ARGS_OP,
3132
VM_COMMIT_COMPONENT_TRANSACTION_OP,
@@ -70,7 +71,7 @@ import { registerDestructor } from '@glimmer/destroyable';
7071
import { managerHasCapability } from '@glimmer/manager';
7172
import { isConstRef, valueForRef } from '@glimmer/reference';
7273
import { assign, dict, EMPTY_STRING_ARRAY, enumerate } from '@glimmer/util';
73-
import { $t0, $t1, CurriedTypes, InternalComponentCapabilities } from '@glimmer/vm';
74+
import { $t0, $t1, InternalComponentCapabilities } from '@glimmer/vm';
7475

7576
import type { CurriedValue } from '../../curried-value';
7677
import type { UpdatingVM } from '../../vm';
@@ -270,7 +271,7 @@ APPEND_OPCODES.add(VM_PREPARE_ARGS_OP, (vm, { op1: register }) => {
270271

271272
let { definition } = instance;
272273

273-
if (isCurriedType(definition, CurriedTypes.Component)) {
274+
if (isCurriedType(definition, CURRIED_COMPONENT)) {
274275
assert(
275276
!definition.manager,
276277
"If the component definition was curried, we don't yet have a manager"

packages/@glimmer/runtime/lib/compiled/opcodes/content.ts

+7-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import {
2+
CURRIED_COMPONENT,
3+
CURRIED_HELPER,
24
VM_APPEND_DOCUMENT_FRAGMENT_OP,
35
VM_APPEND_HTML_OP,
46
VM_APPEND_NODE_OP,
@@ -17,7 +19,7 @@ import {
1719
import { hasInternalComponentManager, hasInternalHelperManager } from '@glimmer/manager';
1820
import { isConstRef, valueForRef } from '@glimmer/reference';
1921
import { isObject } from '@glimmer/util';
20-
import { ContentType, CurriedType } from '@glimmer/vm';
22+
import { ContentType } from '@glimmer/vm';
2123

2224
import { isCurriedType } from '../../curried-value';
2325
import { isEmpty, isFragment, isNode, isSafeString, shouldCoerce } from '../../dom/normalize';
@@ -30,14 +32,11 @@ function toContentType(value: unknown) {
3032
if (shouldCoerce(value)) {
3133
return ContentType.String;
3234
} else if (
33-
isCurriedType(value, CurriedType.Component) ||
35+
isCurriedType(value, CURRIED_COMPONENT) ||
3436
hasInternalComponentManager(value as object)
3537
) {
3638
return ContentType.Component;
37-
} else if (
38-
isCurriedType(value, CurriedType.Helper) ||
39-
hasInternalHelperManager(value as object)
40-
) {
39+
} else if (isCurriedType(value, CURRIED_HELPER) || hasInternalHelperManager(value as object)) {
4140
return ContentType.Helper;
4241
} else if (isSafeString(value)) {
4342
return ContentType.SafeString;
@@ -55,12 +54,12 @@ function toDynamicContentType(value: unknown) {
5554
return ContentType.String;
5655
}
5756

58-
if (isCurriedType(value, CurriedType.Component) || hasInternalComponentManager(value)) {
57+
if (isCurriedType(value, CURRIED_COMPONENT) || hasInternalComponentManager(value)) {
5958
return ContentType.Component;
6059
} else {
6160
if (
6261
import.meta.env.DEV &&
63-
!isCurriedType(value, CurriedType.Helper) &&
62+
!isCurriedType(value, CURRIED_HELPER) &&
6463
!hasInternalHelperManager(value)
6564
) {
6665
throw new Error(

packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import type {
1212
import type { Reference } from '@glimmer/reference';
1313
import type { Revision, Tag } from '@glimmer/validator';
1414
import {
15+
CURRIED_MODIFIER,
1516
VM_CLOSE_ELEMENT_OP,
1617
VM_COMMENT_OP,
1718
VM_DYNAMIC_ATTR_OP,
@@ -39,7 +40,7 @@ import { getInternalModifierManager } from '@glimmer/manager';
3940
import { createComputeRef, isConstRef, valueForRef } from '@glimmer/reference';
4041
import { isObject } from '@glimmer/util';
4142
import { consumeTag, CURRENT_TAG, validateTag, valueForTag } from '@glimmer/validator';
42-
import { $t0, CurriedTypes } from '@glimmer/vm';
43+
import { $t0 } from '@glimmer/vm';
4344

4445
import type { CurriedValue } from '../../curried-value';
4546
import type { DynamicAttribute } from '../../vm/attributes/dynamic';
@@ -210,7 +211,7 @@ APPEND_OPCODES.add(VM_DYNAMIC_MODIFIER_OP, (vm) => {
210211

211212
let hostDefinition: CurriedValue | ModifierDefinitionState;
212213

213-
if (isCurriedType(value, CurriedTypes.Modifier)) {
214+
if (isCurriedType(value, CURRIED_MODIFIER)) {
214215
let {
215216
definition: resolvedDefinition,
216217
owner: curriedOwner,

packages/@glimmer/runtime/lib/compiled/opcodes/expressions.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import type {
99
} from '@glimmer/interfaces';
1010
import type { Reference } from '@glimmer/reference';
1111
import {
12+
CURRIED_HELPER,
1213
decodeHandle,
1314
VM_CONCAT_OP,
1415
VM_CURRY_OP,
@@ -49,7 +50,7 @@ import {
4950
valueForRef,
5051
} from '@glimmer/reference';
5152
import { assign, isObject } from '@glimmer/util';
52-
import { $v0, CurriedTypes } from '@glimmer/vm';
53+
import { $v0 } from '@glimmer/vm';
5354

5455
import { isCurriedType, resolveCurriedValue } from '../../curried-value';
5556
import { APPEND_OPCODES } from '../../opcodes';
@@ -106,7 +107,7 @@ APPEND_OPCODES.add(VM_DYNAMIC_HELPER_OP, (vm) => {
106107

107108
let definition = valueForRef(ref);
108109

109-
if (isCurriedType(definition, CurriedTypes.Helper)) {
110+
if (isCurriedType(definition, CURRIED_HELPER)) {
110111
let { definition: resolvedDef, owner, positional, named } = resolveCurriedValue(definition);
111112

112113
let helper = resolveHelper(resolvedDef, ref);

packages/@glimmer/runtime/lib/references/curry-value.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import type {
88
RuntimeResolver,
99
} from '@glimmer/interfaces';
1010
import type { Reference } from '@glimmer/reference';
11+
import { CURRIED_COMPONENT } from '@glimmer/constants';
1112
import { expect } from '@glimmer/debug-util';
1213
import { createComputeRef, valueForRef } from '@glimmer/reference';
1314
import { isObject } from '@glimmer/util';
14-
import { CurriedTypes } from '@glimmer/vm';
1515

1616
import { curry, isCurriedType } from '../curried-value';
1717

@@ -34,7 +34,7 @@ export default function createCurryRef(
3434

3535
if (isCurriedType(value, type)) {
3636
curriedDefinition = args ? curry(type, value, owner, args) : args;
37-
} else if (type === CurriedTypes.Component && typeof value === 'string' && value) {
37+
} else if (type === CURRIED_COMPONENT && typeof value === 'string' && value) {
3838
// Only components should enter this path, as helpers and modifiers do not
3939
// support string based resolution
4040

packages/@glimmer/vm/index.ts

-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
export { ContentType } from './lib/content';
22
export {
33
ARG_SHIFT,
4-
/** @deprecated */
5-
CurriedTypes as CurriedType,
6-
CurriedTypes,
74
InternalComponentCapabilities,
85
/** @deprecated */
96
InternalComponentCapabilities as InternalComponentCapability,

packages/@glimmer/vm/lib/flags.ts

-9
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ import type {
44
CreateArgsCapability,
55
CreateCallerCapability,
66
CreateInstanceCapability,
7-
CurriedComponent,
8-
CurriedHelper,
9-
CurriedModifier,
107
DynamicLayoutCapability,
118
DynamicScopeCapability,
129
DynamicTagCapability,
@@ -24,12 +21,6 @@ import type {
2421
WrappedCapability,
2522
} from '@glimmer/interfaces';
2623

27-
export const CurriedTypes = {
28-
Component: 0 satisfies CurriedComponent,
29-
Helper: 1 satisfies CurriedHelper,
30-
Modifier: 2 satisfies CurriedModifier,
31-
} as const;
32-
3324
export const InternalComponentCapabilities = {
3425
Empty: 0 satisfies EmptyCapability,
3526
dynamicLayout: 0b0000000000001 satisfies DynamicLayoutCapability,

0 commit comments

Comments
 (0)