UNPKG

@glimmer/runtime

Version:

Minimal runtime needed to render Glimmer templates

913 lines (725 loc) 95.9 kB
"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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