Skip to content

Commit e86df83

Browse files
committed
starting to split decorator-time and addInitializer-time parts of computed
1 parent 9c61bf2 commit e86df83

File tree

1 file changed

+16
-22
lines changed

1 file changed

+16
-22
lines changed

packages/@ember/-internals/metal/lib/decorator.ts

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,10 @@ export function makeComputedDecorator(
131131
boolean | undefined,
132132
];
133133

134-
return makeDescriptor(
135-
desc,
136-
args.length,
137-
target,
138-
key,
139-
propertyDesc,
140-
maybeMeta,
141-
isClassicDecorator
142-
);
134+
let meta = args.length < 4 ? metaFor(target) : maybeMeta;
135+
desc.setup(target, key, propertyDesc, meta!);
136+
137+
return makeDescriptor(desc, key, propertyDesc, isClassicDecorator);
143138
};
144139

145140
setClassicDecorator(decorator, desc);
@@ -151,11 +146,8 @@ export function makeComputedDecorator(
151146

152147
function makeDescriptor(
153148
desc: ComputedDescriptor,
154-
argsLength: number,
155-
target: object,
156149
key: string,
157150
propertyDesc?: DecoratorPropertyDescriptor,
158-
maybeMeta?: Meta,
159151
isClassicDecorator?: boolean
160152
): PropertyDescriptor {
161153
assert(
@@ -166,9 +158,6 @@ function makeDescriptor(
166158
!COMPUTED_GETTERS.has(propertyDesc.get)
167159
);
168160

169-
let meta = argsLength < 4 ? metaFor(target) : maybeMeta;
170-
desc.setup(target, key, propertyDesc, meta!);
171-
172161
let computedDesc: PropertyDescriptor = {
173162
enumerable: desc.enumerable,
174163
configurable: desc.configurable,
@@ -183,32 +172,37 @@ function computedDecorator2023(args: Parameters<Decorator>, desc: ComputedDescri
183172
switch (dec.kind) {
184173
case 'field':
185174
dec.context.addInitializer(function (this: any) {
175+
desc.setup(this, dec.context.name as string, undefined, metaFor(this));
186176
Object.defineProperty(
187177
this,
188178
dec.context.name,
189-
makeDescriptor(desc, 2, this, dec.context.name as string)
179+
makeDescriptor(desc, dec.context.name as string)
190180
);
191181
});
192182
break;
193183
case 'getter':
194184
dec.context.addInitializer(function (this: any) {
185+
let propDesc = {
186+
get: dec.value as any,
187+
};
188+
desc.setup(this, dec.context.name as string, propDesc, metaFor(this));
195189
Object.defineProperty(
196190
this,
197191
dec.context.name,
198-
makeDescriptor(desc, 2, this, dec.context.name as string, {
199-
get: dec.value as any,
200-
})
192+
makeDescriptor(desc, dec.context.name as string, propDesc)
201193
);
202194
});
203195
break;
204196
case 'setter':
205197
dec.context.addInitializer(function (this: any) {
198+
let propDesc = {
199+
set: dec.value as any,
200+
};
201+
desc.setup(this, dec.context.name as string, propDesc, metaFor(this));
206202
Object.defineProperty(
207203
this,
208204
dec.context.name,
209-
makeDescriptor(desc, 2, this, dec.context.name as string, {
210-
set: dec.value as any,
211-
})
205+
makeDescriptor(desc, dec.context.name as string, propDesc)
212206
);
213207
});
214208
break;

0 commit comments

Comments
 (0)