ember-legacy-class-transform
Version:
The default blueprint for ember-cli addons.
27 lines • 810 B
JavaScript
import { CONSTANT_TAG, UpdatableTag, combine } from '@glimmer/reference';
class DynamicVarReference {
constructor(scope, nameRef) {
this.scope = scope;
this.nameRef = nameRef;
let varTag = this.varTag = UpdatableTag.create(CONSTANT_TAG);
this.tag = combine([nameRef.tag, varTag]);
}
value() {
return this.getVar().value();
}
get(key) {
return this.getVar().get(key);
}
getVar() {
let name = String(this.nameRef.value());
let ref = this.scope.get(name);
this.varTag.inner.update(ref.tag);
return ref;
}
}
function getDynamicVar(vm, args) {
let scope = vm.dynamicScope();
let nameRef = args.positional.at(0);
return new DynamicVarReference(scope, nameRef);
}
export default getDynamicVar;