@@ -2,6 +2,8 @@ import { RootReference } from './utils/references';
22import run from 'ember-metal/run_loop' ;
33import { setHasViews } from 'ember-metal/tags' ;
44import { CURRENT_TAG , UNDEFINED_REFERENCE } from 'glimmer-reference' ;
5+ import fallbackViewRegistry from 'ember-views/compat/fallback-view-registry' ;
6+ import { assert } from 'ember-metal/debug' ;
57
68const { backburner } = run ;
79
@@ -115,12 +117,13 @@ class Scheduler {
115117}
116118
117119class Renderer {
118- constructor ( { dom, env, destinedForDOM = false } ) {
120+ constructor ( { dom, env, _viewRegistry , destinedForDOM = false } ) {
119121 this . _root = null ;
120122 this . _dom = dom ;
121123 this . _env = env ;
122124 this . _destinedForDOM = destinedForDOM ;
123125 this . _scheduler = new Scheduler ( ) ;
126+ this . _viewRegistry = _viewRegistry || fallbackViewRegistry ;
124127 }
125128
126129 destroy ( ) {
@@ -209,16 +212,25 @@ class Renderer {
209212 // TODO: Implement this
210213 // throw new Error('Something you did caused a view to re-render after it rendered but before it was inserted into the DOM.');
211214 }
215+
216+ _register ( view ) {
217+ assert ( 'Attempted to register a view with an id already in use: ' + view . elementId , ! this . _viewRegistry [ this . elementId ] ) ;
218+ this . _viewRegistry [ view . elementId ] = view ;
219+ }
220+
221+ _unregister ( view ) {
222+ delete this . _viewRegistry [ this . elementId ] ;
223+ }
212224}
213225
214226export const InertRenderer = {
215- create ( { dom, env } ) {
216- return new Renderer ( { dom, env, destinedForDOM : false } ) ;
227+ create ( { dom, env, _viewRegistry } ) {
228+ return new Renderer ( { dom, env, _viewRegistry , destinedForDOM : false } ) ;
217229 }
218230} ;
219231
220232export const InteractiveRenderer = {
221- create ( { dom, env } ) {
222- return new Renderer ( { dom, env, destinedForDOM : true } ) ;
233+ create ( { dom, env, _viewRegistry } ) {
234+ return new Renderer ( { dom, env, _viewRegistry , destinedForDOM : true } ) ;
223235 }
224236} ;
0 commit comments