@glimmer/runtime
Version:
Minimal runtime needed to render Glimmer templates
913 lines (725 loc) • 95.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DidUpdateLayoutOpcode = exports.UpdateComponentOpcode = exports.ComponentElementOperations = void 0;
var _env = require("@glimmer/env");
var _reference = require("@glimmer/reference");
var _util = require("@glimmer/util");
var _vm2 = require("@glimmer/vm");
var _destroyable = require("@glimmer/destroyable");
var _manager3 = require("@glimmer/manager");
var _resolve = require("../../component/resolve");
var _interfaces = require("../../component/interfaces");
var _opcodes = require("../../opcodes");
var _classList = _interopRequireDefault(require("../../references/class-list"));
var _symbols = require("../../symbols");
var _arguments = require("../../vm/arguments");
var _dom = require("./dom");
var _curriedValue = require("../../curried-value");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
_opcodes.APPEND_OPCODES.add(78
/* PushComponentDefinition */
, function (vm, _ref) {
var handle = _ref.op1;
var definition = vm[_symbols.CONSTANTS].getValue(handle);
false && (0, _util.assert)(!!definition, "Missing component for " + handle);
var manager = definition.manager,
capabilities = definition.capabilities;
var instance = {
definition: definition,
manager: manager,
capabilities: capabilities,
state: null,
handle: null,
table: null,
lookup: null
};
vm.stack.push(instance);
});
_opcodes.APPEND_OPCODES.add(80
/* ResolveDynamicComponent */
, function (vm, _ref2) {
var _isStrict = _ref2.op1;
var stack = vm.stack;
var component = (0, _reference.valueForRef)(stack.pop());
var constants = vm[_symbols.CONSTANTS];
var owner = vm.getOwner();
var isStrict = constants.getValue(_isStrict);
vm.loadValue(_vm2.$t1, null); // Clear the temp register
var definition;
if (typeof component === 'string') {
if (_env.DEBUG && isStrict) {
throw new Error("Attempted to resolve a dynamic component with a string definition, `" + component + "` in a strict mode template. In strict mode, using strings to resolve component definitions is prohibited. You can instead import the component definition and use it directly.");
}
var resolvedDefinition = (0, _resolve.resolveComponent)(vm.runtime.resolver, constants, component, owner);
definition = resolvedDefinition;
} else if ((0, _curriedValue.isCurriedValue)(component)) {
definition = component;
} else {
definition = constants.component(component, owner);
}
stack.push(definition);
});
_opcodes.APPEND_OPCODES.add(81
/* ResolveCurriedComponent */
, function (vm) {
var stack = vm.stack;
var ref = stack.pop();
var value = (0, _reference.valueForRef)(ref);
var constants = vm[_symbols.CONSTANTS];
var definition;
if (_env.DEBUG && !(typeof value === 'function' || typeof value === 'object' && value !== null)) {
throw new Error("Expected a component definition, but received " + value + ". You may have accidentally done <" + ref.debugLabel + ">, where \"" + ref.debugLabel + "\" was a string instead of a curried component definition. You must either use the component definition directly, or use the {{component}} helper to create a curried component definition when invoking dynamically.");
}
if ((0, _curriedValue.isCurriedValue)(value)) {
definition = value;
} else {
definition = constants.component(value, vm.getOwner(), true);
if (_env.DEBUG && definition === null) {
throw new Error("Expected a dynamic component definition, but received an object or function that did not have a component manager associated with it. The dynamic invocation was `<" + ref.debugLabel + ">` or `{{" + ref.debugLabel + "}}`, and the incorrect definition is the value at the path `" + ref.debugLabel + "`, which was: " + (0, _util.debugToString)(value));
}
}
stack.push(definition);
});
_opcodes.APPEND_OPCODES.add(79
/* PushDynamicComponentInstance */
, function (vm) {
var stack = vm.stack;
var definition = stack.pop();
var capabilities, manager;
if ((0, _curriedValue.isCurriedValue)(definition)) {
manager = capabilities = null;
} else {
manager = definition.manager;
capabilities = definition.capabilities;
}
stack.push({
definition: definition,
capabilities: capabilities,
manager: manager,
state: null,
handle: null,
table: null
});
});
_opcodes.APPEND_OPCODES.add(82
/* PushArgs */
, function (vm, _ref3) {
var _names = _ref3.op1,
_blockNames = _ref3.op2,
flags = _ref3.op3;
var stack = vm.stack;
var names = vm[_symbols.CONSTANTS].getArray(_names);
var positionalCount = flags >> 4;
var atNames = flags & 8;
var blockNames = flags & 7 ? vm[_symbols.CONSTANTS].getArray(_blockNames) : _util.EMPTY_STRING_ARRAY;
vm[_symbols.ARGS].setup(stack, names, blockNames, positionalCount, !!atNames);
stack.push(vm[_symbols.ARGS]);
});
_opcodes.APPEND_OPCODES.add(83
/* PushEmptyArgs */
, function (vm) {
var stack = vm.stack;
stack.push(vm[_symbols.ARGS].empty(stack));
});
_opcodes.APPEND_OPCODES.add(86
/* CaptureArgs */
, function (vm) {
var stack = vm.stack;
var args = stack.pop();
var capturedArgs = args.capture();
stack.push(capturedArgs);
});
_opcodes.APPEND_OPCODES.add(85
/* PrepareArgs */
, function (vm, _ref4) {
var _state = _ref4.op1;
var stack = vm.stack;
var instance = vm.fetchValue(_state);
var args = stack.pop();
var definition = instance.definition;
if ((0, _curriedValue.isCurriedType)(definition, 0
/* Component */
)) {
false && (0, _util.assert)(!definition.manager, "If the component definition was curried, we don't yet have a manager");
var constants = vm[_symbols.CONSTANTS];
var _resolveCurriedValue = (0, _curriedValue.resolveCurriedValue)(definition),
resolvedDefinition = _resolveCurriedValue.definition,
owner = _resolveCurriedValue.owner,
resolved = _resolveCurriedValue.resolved,
positional = _resolveCurriedValue.positional,
named = _resolveCurriedValue.named;
if (resolved === true) {
definition = resolvedDefinition;
} else if (typeof resolvedDefinition === 'string') {
var resolvedValue = vm.runtime.resolver.lookupComponent(resolvedDefinition, owner);
definition = constants.resolvedComponent(resolvedValue, resolvedDefinition);
} else {
definition = constants.component(resolvedDefinition, owner);
}
if (named !== undefined) {
args.named.merge(_util.assign.apply(void 0, [{}].concat(named)));
}
if (positional !== undefined) {
args.realloc(positional.length);
args.positional.prepend(positional);
}
var _definition = definition,
_manager = _definition.manager;
false && (0, _util.assert)(instance.manager === null, 'component instance manager should not be populated yet');
false && (0, _util.assert)(instance.capabilities === null, 'component instance manager should not be populated yet');
instance.definition = definition;
instance.manager = _manager;
instance.capabilities = definition.capabilities; // Save off the owner that this component was curried with. Later on,
// we'll fetch the value of this register and set it as the owner on the
// new root scope.
vm.loadValue(_vm2.$t1, owner);
}
var _definition2 = definition,
manager = _definition2.manager,
state = _definition2.state;
var capabilities = instance.capabilities;
if (!(0, _manager3.managerHasCapability)(manager, capabilities, 4
/* PrepareArgs */
)) {
stack.push(args);
return;
}
var blocks = args.blocks.values;
var blockNames = args.blocks.names;
var preparedArgs = manager.prepareArgs(state, args);
if (preparedArgs) {
args.clear();
for (var i = 0; i < blocks.length; i++) {
stack.push(blocks[i]);
}
var _positional = preparedArgs.positional,
_named = preparedArgs.named;
var positionalCount = _positional.length;
for (var _i = 0; _i < positionalCount; _i++) {
stack.push(_positional[_i]);
}
var names = Object.keys(_named);
for (var _i2 = 0; _i2 < names.length; _i2++) {
stack.push(_named[names[_i2]]);
}
args.setup(stack, names, blockNames, positionalCount, false);
}
stack.push(args);
});
_opcodes.APPEND_OPCODES.add(87
/* CreateComponent */
, function (vm, _ref5) {
var flags = _ref5.op1,
_state = _ref5.op2;
var instance = vm.fetchValue(_state);
var definition = instance.definition,
manager = instance.manager,
capabilities = instance.capabilities;
if (!(0, _manager3.managerHasCapability)(manager, capabilities, 512
/* CreateInstance */
)) {
// TODO: Closure and Main components are always invoked dynamically, so this
// opcode may run even if this capability is not enabled. In the future we
// should handle this in a better way.
return;
}
var dynamicScope = null;
if ((0, _manager3.managerHasCapability)(manager, capabilities, 64
/* DynamicScope */
)) {
dynamicScope = vm.dynamicScope();
}
var hasDefaultBlock = flags & 1;
var args = null;
if ((0, _manager3.managerHasCapability)(manager, capabilities, 8
/* CreateArgs */
)) {
args = vm.stack.peek();
}
var self = null;
if ((0, _manager3.managerHasCapability)(manager, capabilities, 128
/* CreateCaller */
)) {
self = vm.getSelf();
}
var state = manager.create(vm.getOwner(), definition.state, args, vm.env, dynamicScope, self, !!hasDefaultBlock); // We want to reuse the `state` POJO here, because we know that the opcodes
// only transition at exactly one place.
instance.state = state;
if ((0, _manager3.managerHasCapability)(manager, capabilities, 256
/* UpdateHook */
)) {
vm.updateWith(new UpdateComponentOpcode(state, manager, dynamicScope));
}
});
_opcodes.APPEND_OPCODES.add(88
/* RegisterComponentDestructor */
, function (vm, _ref6) {
var _state = _ref6.op1;
var _vm$fetchValue = vm.fetchValue(_state),
manager = _vm$fetchValue.manager,
state = _vm$fetchValue.state,
capabilities = _vm$fetchValue.capabilities;
var d = manager.getDestroyable(state);
if (_env.DEBUG && !(0, _manager3.managerHasCapability)(manager, capabilities, 2048
/* WillDestroy */
) && d !== null && typeof 'willDestroy' in d) {
throw new Error('BUG: Destructor has willDestroy, but the willDestroy capability was not enabled for this component. Pre-destruction hooks must be explicitly opted into');
}
if (d) vm.associateDestroyable(d);
});
_opcodes.APPEND_OPCODES.add(97
/* BeginComponentTransaction */
, function (vm, _ref7) {
var _state = _ref7.op1;
var _a;
var name;
if (_env.DEBUG) {
var _vm$fetchValue2 = vm.fetchValue(_state),
definition = _vm$fetchValue2.definition,
manager = _vm$fetchValue2.manager;
name = (_a = definition.resolvedName) !== null && _a !== void 0 ? _a : manager.getDebugName(definition.state);
}
vm.beginCacheGroup(name);
vm.elements().pushSimpleBlock();
});
_opcodes.APPEND_OPCODES.add(89
/* PutComponentOperations */
, function (vm) {
vm.loadValue(_vm2.$t0, new ComponentElementOperations());
});
_opcodes.APPEND_OPCODES.add(53
/* ComponentAttr */
, function (vm, _ref8) {
var _name = _ref8.op1,
_trusting = _ref8.op2,
_namespace = _ref8.op3;
var name = vm[_symbols.CONSTANTS].getValue(_name);
var trusting = vm[_symbols.CONSTANTS].getValue(_trusting);
var reference = vm.stack.pop();
var namespace = _namespace ? vm[_symbols.CONSTANTS].getValue(_namespace) : null;
vm.fetchValue(_vm2.$t0).setAttribute(name, reference, trusting, namespace);
});
_opcodes.APPEND_OPCODES.add(105
/* StaticComponentAttr */
, function (vm, _ref9) {
var _name = _ref9.op1,
_value = _ref9.op2,
_namespace = _ref9.op3;
var name = vm[_symbols.CONSTANTS].getValue(_name);
var value = vm[_symbols.CONSTANTS].getValue(_value);
var namespace = _namespace ? vm[_symbols.CONSTANTS].getValue(_namespace) : null;
vm.fetchValue(_vm2.$t0).setStaticAttribute(name, value, namespace);
});
var ComponentElementOperations = /*#__PURE__*/function () {
function ComponentElementOperations() {
this.attributes = (0, _util.dict)();
this.classes = [];
this.modifiers = [];
}
var _proto = ComponentElementOperations.prototype;
_proto.setAttribute = function setAttribute(name, value, trusting, namespace) {
var deferred = {
value: value,
namespace: namespace,
trusting: trusting
};
if (name === 'class') {
this.classes.push(value);
}
this.attributes[name] = deferred;
};
_proto.setStaticAttribute = function setStaticAttribute(name, value, namespace) {
var deferred = {
value: value,
namespace: namespace
};
if (name === 'class') {
this.classes.push(value);
}
this.attributes[name] = deferred;
};
_proto.addModifier = function addModifier(modifier) {
this.modifiers.push(modifier);
};
_proto.flush = function flush(vm) {
var type;
var attributes = this.attributes;
for (var name in this.attributes) {
if (name === 'type') {
type = attributes[name];
continue;
}
var attr = this.attributes[name];
if (name === 'class') {
setDeferredAttr(vm, 'class', mergeClasses(this.classes), attr.namespace, attr.trusting);
} else {
setDeferredAttr(vm, name, attr.value, attr.namespace, attr.trusting);
}
}
if (type !== undefined) {
setDeferredAttr(vm, 'type', type.value, type.namespace, type.trusting);
}
return this.modifiers;
};
return ComponentElementOperations;
}();
exports.ComponentElementOperations = ComponentElementOperations;
function mergeClasses(classes) {
if (classes.length === 0) {
return '';
}
if (classes.length === 1) {
return classes[0];
}
if (allStringClasses(classes)) {
return classes.join(' ');
}
return (0, _classList.default)(classes);
}
function allStringClasses(classes) {
for (var i = 0; i < classes.length; i++) {
if (typeof classes[i] !== 'string') {
return false;
}
}
return true;
}
function setDeferredAttr(vm, name, value, namespace, trusting) {
if (trusting === void 0) {
trusting = false;
}
if (typeof value === 'string') {
vm.elements().setStaticAttribute(name, value, namespace);
} else {
var attribute = vm.elements().setDynamicAttribute(name, (0, _reference.valueForRef)(value), trusting, namespace);
if (!(0, _reference.isConstRef)(value)) {
vm.updateWith(new _dom.UpdateDynamicAttributeOpcode(value, attribute, vm.env));
}
}
}
_opcodes.APPEND_OPCODES.add(99
/* DidCreateElement */
, function (vm, _ref10) {
var _state = _ref10.op1;
var _vm$fetchValue3 = vm.fetchValue(_state),
definition = _vm$fetchValue3.definition,
state = _vm$fetchValue3.state;
var manager = definition.manager;
var operations = vm.fetchValue(_vm2.$t0);
manager.didCreateElement(state, vm.elements().constructing, operations);
});
_opcodes.APPEND_OPCODES.add(90
/* GetComponentSelf */
, function (vm, _ref11) {
var _state = _ref11.op1,
_names = _ref11.op2;
var _a;
var instance = vm.fetchValue(_state);
var definition = instance.definition,
state = instance.state;
var manager = definition.manager;
var selfRef = manager.getSelf(state);
if (vm.env.debugRenderTree !== undefined) {
var _instance = vm.fetchValue(_state);
var _definition3 = _instance.definition,
_manager2 = _instance.manager;
var args;
if (vm.stack.peek() === vm[_symbols.ARGS]) {
args = vm[_symbols.ARGS].capture();
} else {
var names = vm[_symbols.CONSTANTS].getArray(_names);
vm[_symbols.ARGS].setup(vm.stack, names, [], 0, true);
args = vm[_symbols.ARGS].capture();
}
var moduleName;
var compilable = _definition3.compilable;
if (compilable === null) {
false && (0, _util.assert)((0, _manager3.managerHasCapability)(_manager2, _instance.capabilities, 1
/* DynamicLayout */
), 'BUG: No template was found for this component, and the component did not have the dynamic layout capability');
compilable = _manager2.getDynamicLayout(state, vm.runtime.resolver);
if (compilable !== null) {
moduleName = compilable.moduleName;
} else {
moduleName = '__default__.hbs';
}
} else {
moduleName = compilable.moduleName;
} // For tearing down the debugRenderTree
vm.associateDestroyable(_instance);
if ((0, _interfaces.hasCustomDebugRenderTreeLifecycle)(_manager2)) {
var nodes = _manager2.getDebugCustomRenderTree(_instance.definition.state, _instance.state, args, moduleName);
nodes.forEach(function (node) {
var bucket = node.bucket;
vm.env.debugRenderTree.create(bucket, node);
(0, _destroyable.registerDestructor)(_instance, function () {
var _a;
(_a = vm.env.debugRenderTree) === null || _a === void 0 ? void 0 : _a.willDestroy(bucket);
});
vm.updateWith(new DebugRenderTreeUpdateOpcode(bucket));
});
} else {
var name = (_a = _definition3.resolvedName) !== null && _a !== void 0 ? _a : _manager2.getDebugName(_definition3.state);
vm.env.debugRenderTree.create(_instance, {
type: 'component',
name: name,
args: args,
template: moduleName,
instance: (0, _reference.valueForRef)(selfRef)
});
vm.associateDestroyable(_instance);
(0, _destroyable.registerDestructor)(_instance, function () {
var _a;
(_a = vm.env.debugRenderTree) === null || _a === void 0 ? void 0 : _a.willDestroy(_instance);
});
vm.updateWith(new DebugRenderTreeUpdateOpcode(_instance));
}
}
vm.stack.push(selfRef);
});
_opcodes.APPEND_OPCODES.add(91
/* GetComponentTagName */
, function (vm, _ref12) {
var _state = _ref12.op1;
var _vm$fetchValue4 = vm.fetchValue(_state),
definition = _vm$fetchValue4.definition,
state = _vm$fetchValue4.state;
var manager = definition.manager;
var tagName = manager.getTagName(state); // User provided value from JS, so we don't bother to encode
vm.stack.push(tagName);
}); // Dynamic Invocation Only
_opcodes.APPEND_OPCODES.add(92
/* GetComponentLayout */
, function (vm, _ref13) {
var _state = _ref13.op1;
var instance = vm.fetchValue(_state);
var manager = instance.manager,
definition = instance.definition;
var stack = vm.stack;
var compilable = definition.compilable;
if (compilable === null) {
var capabilities = instance.capabilities;
false && (0, _util.assert)((0, _manager3.managerHasCapability)(manager, capabilities, 1
/* DynamicLayout */
), 'BUG: No template was found for this component, and the component did not have the dynamic layout capability');
compilable = manager.getDynamicLayout(instance.state, vm.runtime.resolver);
if (compilable === null) {
if ((0, _manager3.managerHasCapability)(manager, capabilities, 1024
/* Wrapped */
)) {
compilable = (0, _util.unwrapTemplate)(vm[_symbols.CONSTANTS].defaultTemplate).asWrappedLayout();
} else {
compilable = (0, _util.unwrapTemplate)(vm[_symbols.CONSTANTS].defaultTemplate).asLayout();
}
}
}
var handle = compilable.compile(vm.context);
stack.push(compilable.symbolTable);
stack.push(handle);
});
_opcodes.APPEND_OPCODES.add(75
/* Main */
, function (vm, _ref14) {
var register = _ref14.op1;
var definition = vm.stack.pop();
var invocation = vm.stack.pop();
var manager = definition.manager,
capabilities = definition.capabilities;
var state = {
definition: definition,
manager: manager,
capabilities: capabilities,
state: null,
handle: invocation.handle,
table: invocation.symbolTable,
lookup: null
};
vm.loadValue(register, state);
});
_opcodes.APPEND_OPCODES.add(95
/* PopulateLayout */
, function (vm, _ref15) {
var _state = _ref15.op1;
var stack = vm.stack; // In DEBUG handles could be ErrHandle objects
var handle = stack.pop();
var table = stack.pop();
var state = vm.fetchValue(_state);
state.handle = handle;
state.table = table;
});
_opcodes.APPEND_OPCODES.add(38
/* VirtualRootScope */
, function (vm, _ref16) {
var _state = _ref16.op1;
var _vm$fetchValue5 = vm.fetchValue(_state),
table = _vm$fetchValue5.table,
manager = _vm$fetchValue5.manager,
capabilities = _vm$fetchValue5.capabilities,
state = _vm$fetchValue5.state;
var owner;
if ((0, _manager3.managerHasCapability)(manager, capabilities, 4096
/* HasSubOwner */
)) {
owner = manager.getOwner(state);
vm.loadValue(_vm2.$t1, null); // Clear the temp register
} else {
// Check the temp register to see if an owner was resolved from currying
owner = vm.fetchValue(_vm2.$t1);
if (owner === null) {
// If an owner wasn't found, default to using the current owner. This
// will happen for normal dynamic component invocation,
// e.g. <SomeClassicEmberComponent/>
owner = vm.getOwner();
} else {
// Else the owner was found, so clear the temp register. This will happen
// if we are loading a curried component, e.g. <@someCurriedComponent/>
vm.loadValue(_vm2.$t1, null);
}
}
vm.pushRootScope(table.symbols.length + 1, owner);
});
_opcodes.APPEND_OPCODES.add(94
/* SetupForEval */
, function (vm, _ref17) {
var _state = _ref17.op1;
var state = vm.fetchValue(_state);
if (state.table.hasEval) {
var lookup = state.lookup = (0, _util.dict)();
vm.scope().bindEvalScope(lookup);
}
});
_opcodes.APPEND_OPCODES.add(17
/* SetNamedVariables */
, function (vm, _ref18) {
var _state = _ref18.op1;
var state = vm.fetchValue(_state);
var scope = vm.scope();
var args = vm.stack.peek();
var callerNames = args.named.atNames;
for (var i = callerNames.length - 1; i >= 0; i--) {
var atName = callerNames[i];
var symbol = state.table.symbols.indexOf(callerNames[i]);
var value = args.named.get(atName, true);
if (symbol !== -1) scope.bindSymbol(symbol + 1, value);
if (state.lookup) state.lookup[atName] = value;
}
});
function bindBlock(symbolName, blockName, state, blocks, vm) {
var symbol = state.table.symbols.indexOf(symbolName);
var block = blocks.get(blockName);
if (symbol !== -1) vm.scope().bindBlock(symbol + 1, block);
if (state.lookup) state.lookup[symbolName] = block;
}
_opcodes.APPEND_OPCODES.add(18
/* SetBlocks */
, function (vm, _ref19) {
var _state = _ref19.op1;
var state = vm.fetchValue(_state);
var _vm$stack$peek = vm.stack.peek(),
blocks = _vm$stack$peek.blocks;
for (var i = 0; i < blocks.names.length; i++) {
bindBlock(blocks.symbolNames[i], blocks.names[i], state, blocks, vm);
}
}); // Dynamic Invocation Only
_opcodes.APPEND_OPCODES.add(96
/* InvokeComponentLayout */
, function (vm, _ref20) {
var _state = _ref20.op1;
var state = vm.fetchValue(_state);
vm.call(state.handle);
});
_opcodes.APPEND_OPCODES.add(100
/* DidRenderLayout */
, function (vm, _ref21) {
var _state = _ref21.op1;
var instance = vm.fetchValue(_state);
var manager = instance.manager,
state = instance.state,
capabilities = instance.capabilities;
var bounds = vm.elements().popBlock();
if (vm.env.debugRenderTree !== undefined) {
if ((0, _interfaces.hasCustomDebugRenderTreeLifecycle)(manager)) {
var nodes = manager.getDebugCustomRenderTree(instance.definition.state, state, _arguments.EMPTY_ARGS);
nodes.reverse().forEach(function (node) {
var bucket = node.bucket;
vm.env.debugRenderTree.didRender(bucket, bounds);
vm.updateWith(new DebugRenderTreeDidRenderOpcode(bucket, bounds));
});
} else {
vm.env.debugRenderTree.didRender(instance, bounds);
vm.updateWith(new DebugRenderTreeDidRenderOpcode(instance, bounds));
}
}
if ((0, _manager3.managerHasCapability)(manager, capabilities, 512
/* CreateInstance */
)) {
var mgr = manager;
mgr.didRenderLayout(state, bounds);
vm.env.didCreate(instance);
vm.updateWith(new DidUpdateLayoutOpcode(instance, bounds));
}
});
_opcodes.APPEND_OPCODES.add(98
/* CommitComponentTransaction */
, function (vm) {
vm.commitCacheGroup();
});
var UpdateComponentOpcode = /*#__PURE__*/function () {
function UpdateComponentOpcode(component, manager, dynamicScope) {
this.component = component;
this.manager = manager;
this.dynamicScope = dynamicScope;
}
var _proto2 = UpdateComponentOpcode.prototype;
_proto2.evaluate = function evaluate(_vm) {
var component = this.component,
manager = this.manager,
dynamicScope = this.dynamicScope;
manager.update(component, dynamicScope);
};
return UpdateComponentOpcode;
}();
exports.UpdateComponentOpcode = UpdateComponentOpcode;
var DidUpdateLayoutOpcode = /*#__PURE__*/function () {
function DidUpdateLayoutOpcode(component, bounds) {
this.component = component;
this.bounds = bounds;
}
var _proto3 = DidUpdateLayoutOpcode.prototype;
_proto3.evaluate = function evaluate(vm) {
var component = this.component,
bounds = this.bounds;
var manager = component.manager,
state = component.state;
manager.didUpdateLayout(state, bounds);
vm.env.didUpdate(component);
};
return DidUpdateLayoutOpcode;
}();
exports.DidUpdateLayoutOpcode = DidUpdateLayoutOpcode;
var DebugRenderTreeUpdateOpcode = /*#__PURE__*/function () {
function DebugRenderTreeUpdateOpcode(bucket) {
this.bucket = bucket;
}
var _proto4 = DebugRenderTreeUpdateOpcode.prototype;
_proto4.evaluate = function evaluate(vm) {
var _a;
(_a = vm.env.debugRenderTree) === null || _a === void 0 ? void 0 : _a.update(this.bucket);
};
return DebugRenderTreeUpdateOpcode;
}();
var DebugRenderTreeDidRenderOpcode = /*#__PURE__*/function () {
function DebugRenderTreeDidRenderOpcode(bucket, bounds) {
this.bucket = bucket;
this.bounds = bounds;
}
var _proto5 = DebugRenderTreeDidRenderOpcode.prototype;
_proto5.evaluate = function evaluate(vm) {
var _a;
(_a = vm.env.debugRenderTree) === null || _a === void 0 ? void 0 : _a.didRender(this.bucket, this.bounds);
};
return DebugRenderTreeDidRenderOpcode;
}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFVQTs7QUE2QkE7O0FBQ0E7O0FBU0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBVUE7O0FBQ0E7Ozs7QUEwQ0Esd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQStDLFVBQUEsRUFBQSxFQUFBLElBQUEsRUFBd0I7QUFBQSxNQUFaLE1BQVksR0FBQSxJQUFBLENBQWpCLEdBQWlCOztBQUNyRSxNQUFJLFVBQVUsR0FBRyxFQUFFLENBQUYsa0JBQUUsQ0FBRixDQUFBLFFBQUEsQ0FBakIsTUFBaUIsQ0FBakI7O0FBRHFFLFdBRXJFLGtCQUFPLENBQUMsQ0FBRixVQUFOLEVBQU0sMkJBRitELE1BRXJFLENBRnFFO0FBQUEsTUFJakUsT0FKaUUsR0FJckUsVUFKcUUsQ0FBQSxPQUFBO0FBQUEsTUFJdEQsWUFKc0QsR0FJckUsVUFKcUUsQ0FBQSxZQUFBO0FBTXJFLE1BQUksUUFBUSxHQUE2QjtBQUN2QyxJQUFBLFVBRHVDLEVBQUEsVUFBQTtBQUV2QyxJQUFBLE9BRnVDLEVBQUEsT0FBQTtBQUd2QyxJQUFBLFlBSHVDLEVBQUEsWUFBQTtBQUl2QyxJQUFBLEtBQUssRUFKa0MsSUFBQTtBQUt2QyxJQUFBLE1BQU0sRUFMaUMsSUFBQTtBQU12QyxJQUFBLEtBQUssRUFOa0MsSUFBQTtBQU92QyxJQUFBLE1BQU0sRUFBRTtBQVArQixHQUF6QztBQVVBLEVBQUEsRUFBRSxDQUFGLEtBQUEsQ0FBQSxJQUFBLENBQUEsUUFBQTtBQWhCRixDQUFBOztBQW1CQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBK0MsVUFBQSxFQUFBLEVBQUEsS0FBQSxFQUEyQjtBQUFBLE1BQWYsU0FBZSxHQUFBLEtBQUEsQ0FB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