ember-material-icons
Version:
Google Material icons for your ember-cli app
46 lines (37 loc) • 1.16 kB
text/typescript
import { Option, LinkedList } from '@glimmer/util';
import Environment from '../environment';
import { DestroyableBounds, clear } from '../bounds';
import UpdatingVM, { ExceptionHandler } from './update';
import { UpdatingOpcode } from '../opcodes';
import * as Simple from '../dom/interfaces';
export default class RenderResult implements DestroyableBounds, ExceptionHandler {
constructor(
private env: Environment,
private updating: LinkedList<UpdatingOpcode>,
private bounds: DestroyableBounds
) {}
rerender({ alwaysRevalidate = false } = { alwaysRevalidate: false }) {
let { env, updating } = this;
let vm = new UpdatingVM(env, { alwaysRevalidate });
vm.execute(updating, this);
}
parentElement(): Simple.Element {
return this.bounds.parentElement();
}
firstNode(): Option<Simple.Node> {
return this.bounds.firstNode();
}
lastNode(): Option<Simple.Node> {
return this.bounds.lastNode();
}
opcodes(): LinkedList<UpdatingOpcode> {
return this.updating;
}
handleException() {
throw "this should never happen";
}
destroy() {
this.bounds.destroy();
clear(this.bounds);
}
}