@@ -261,7 +261,6 @@ export default class CurlyComponentManager
261261
262262 beginTrackFrame ( ) ;
263263 let props = processComponentArgs ( capturedArgs ) ;
264- props [ ARGS ] = capturedArgs ;
265264 let argsTag = endTrackFrame ( ) ;
266265
267266 // Alias `id` argument to `elementId` property on the component instance.
@@ -271,11 +270,6 @@ export default class CurlyComponentManager
271270 // component.
272271 props . parentView = parentView ;
273272
274- // Set whether this component was invoked with a block
275- // (`{{#my-component}}{{/my-component}}`) or without one
276- // (`{{my-component}}`).
277- props [ HAS_BLOCK ] = hasBlock ;
278-
279273 // Save the current `this` context of the template as the component's
280274 // `_target`, so bubbled actions are routed to the right place.
281275 props . _target = valueForRef ( callerSelfRef ) ;
@@ -293,6 +287,12 @@ export default class CurlyComponentManager
293287 beginUntrackFrame ( ) ;
294288 let component = ComponentClass . create ( props ) ;
295289
290+ // Set internal symbol-keyed properties directly on the instance.
291+ // These are not passed through create() because Object.keys() doesn't
292+ // enumerate Symbol properties.
293+ ( component as any ) [ ARGS ] = capturedArgs ;
294+ ( component as any ) [ HAS_BLOCK ] = hasBlock ;
295+
296296 let finalizer = _instrumentStart ( 'render.component' , initialRenderInstrumentDetails , component ) ;
297297
298298 // We become the new parentView for downstream components, so save our
0 commit comments