Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions packages/ember-glimmer/lib/syntax/abstract-manager.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { runInDebug } from 'ember-metal';

class AbstractManager {

}

runInDebug(() => {
AbstractManager.prototype._pushToDebugStack = function(name, environment) {
this.debugStack = environment.debugStack;
this.debugStack.push(name);
};

AbstractManager.prototype._pushEngineToDebugStack = function(name, environment) {
this.debugStack = environment.debugStack;
this.debugStack.pushEngine(name);
};
});

export default AbstractManager;
10 changes: 2 additions & 8 deletions packages/ember-glimmer/lib/syntax/curly-component.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import {
ComponentArgs
} from '../utils/process-args';
import { privatize as P } from 'container';
import AbstractManager from './abstract-manager';

const DEFAULT_LAYOUT = P`template:components/-default`;

Expand Down Expand Up @@ -176,7 +177,7 @@ function rerenderInstrumentDetails(component) {
return component.instrumentDetails({ initialRender: false });
}

class CurlyComponentManager {
class CurlyComponentManager extends AbstractManager {
prepareArgs(definition, args) {
if (definition.ComponentClass) {
validatePositionalParameters(args.named, args.positional.values, definition.ComponentClass.class.positionalParams);
Expand Down Expand Up @@ -370,13 +371,6 @@ class CurlyComponentManager {
}
}

runInDebug(() => {
CurlyComponentManager.prototype._pushToDebugStack = function(name, environment) {
this.debugStack = environment.debugStack;
this.debugStack.push(name);
};
});

const MANAGER = new CurlyComponentManager();

class TopComponentManager extends CurlyComponentManager {
Expand Down
13 changes: 4 additions & 9 deletions packages/ember-glimmer/lib/syntax/mount.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import { RootReference } from '../utils/references';
import { generateControllerFactory } from 'ember-routing';
import { OutletLayoutCompiler } from './outlet';
import { FACTORY_FOR } from 'container';
import AbstractManager from './abstract-manager';

/**
The `{{mount}}` helper lets you embed a routeless engine in a template.
Mounting an engine will cause an instance to be booted and its `application`
Expand Down Expand Up @@ -68,13 +70,13 @@ export class MountSyntax extends StatementSyntax {
}
}

class MountManager {
class MountManager extends AbstractManager {
prepareArgs(definition, args) {
return args;
}

create(environment, { name, env }, args, dynamicScope) {
runInDebug(() => this._pushToDebugStack(`engine:${name}`, env));
runInDebug(() => this._pushEngineToDebugStack(`engine:${name}`, env));

dynamicScope.outletState = UNDEFINED_REFERENCE;

Expand Down Expand Up @@ -116,13 +118,6 @@ class MountManager {
didUpdate(state) {}
}

runInDebug(() => {
MountManager.prototype._pushToDebugStack = function(name, environment) {
this.debugStack = environment.debugStack;
this.debugStack.pushEngine(name);
};
});

const MOUNT_MANAGER = new MountManager();

class MountDefinition extends ComponentDefinition {
Expand Down
10 changes: 2 additions & 8 deletions packages/ember-glimmer/lib/syntax/outlet.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
ConstReference,
combine
} from 'glimmer-reference';
import AbstractManager from './abstract-manager';

function outletComponentFor(vm) {
let { outletState } = vm.dynamicScope();
Expand Down Expand Up @@ -174,7 +175,7 @@ class StateBucket {
}
}

class OutletComponentManager {
class OutletComponentManager extends AbstractManager {
prepareArgs(definition, args) {
return args;
}
Expand Down Expand Up @@ -216,13 +217,6 @@ class OutletComponentManager {
didUpdate(state) {}
}

runInDebug(() => {
OutletComponentManager.prototype._pushToDebugStack = function(name, environment) {
this.debugStack = environment.debugStack;
this.debugStack.push(name);
};
});

const MANAGER = new OutletComponentManager();

class TopLevelOutletComponentManager extends OutletComponentManager {
Expand Down
8 changes: 2 additions & 6 deletions packages/ember-glimmer/lib/syntax/render.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { RootReference } from '../utils/references';
import { generateController, generateControllerFactory } from 'ember-routing';
import { OutletLayoutCompiler } from './outlet';
import { FACTORY_FOR } from 'container';
import AbstractManager from './abstract-manager';

function makeComponentDefinition(vm) {
let env = vm.env;
Expand Down Expand Up @@ -137,7 +138,7 @@ export class RenderSyntax extends StatementSyntax {
}
}

class AbstractRenderManager {
class AbstractRenderManager extends AbstractManager {
prepareArgs(definition, args) {
return args;
}
Expand Down Expand Up @@ -172,11 +173,6 @@ runInDebug(() => {
AbstractRenderManager.prototype.didRenderLayout = function() {
this.debugStack.pop();
};

AbstractRenderManager.prototype._pushToDebugStack = function(name, environment) {
this.debugStack = environment.debugStack;
this.debugStack.push(name);
};
});

class SingletonRenderManager extends AbstractRenderManager {
Expand Down