@glimmer/runtime
- Version 0.92.0
- Published
- 982 kB
- 12 dependencies
- MIT license
Install
npm i @glimmer/runtime
yarn add @glimmer/runtime
pnpm add @glimmer/runtime
Overview
Minimal runtime needed to render Glimmer templates
Index
Variables
Functions
- clear()
- clientBuilder()
- createCapturedArgs()
- curry()
- dynamicAttribute()
- inTransaction()
- invokeHelper()
- isSerializationFirstNode()
- isWhitespace()
- normalizeProperty()
- rehydrationBuilder()
- reifyArgs()
- reifyNamed()
- reifyPositional()
- renderComponent()
- renderMain()
- renderSync()
- resetDebuggerCallback()
- runtimeContext()
- setDebuggerCallback()
- templateOnlyComponent()
Classes
LowLevelVM
- [ARGS$0]
- [CONSTANTS]
- [INNER_VM]
- associateDestroyable()
- beginCacheGroup()
- bindDynamicScope()
- call()
- capture()
- captureState()
- commitCacheGroup()
- compile()
- context
- dynamicScope()
- elements()
- empty()
- enter()
- enterItem()
- enterList()
- env
- execute()
- exit()
- exitList()
- fetch()
- fetchValue()
- getOwner()
- getSelf()
- goto()
- initial()
- listBlock()
- load()
- loadValue()
- next()
- pc
- popDynamicScope()
- popFrame()
- popScope()
- popUpdating()
- program
- pushChildScope()
- pushDynamicScope()
- pushFrame()
- pushRootScope()
- pushScope()
- pushUpdating()
- referenceForSymbol()
- registerItem()
- return()
- returnTo()
- runtime
- s0
- s1
- scope()
- stack
- t0
- t1
- tryUpdating()
- updateWith()
- updating()
- v0
NewElementBuilder
- [CURSOR_STACK]
- appendComment()
- appendDynamicFragment()
- appendDynamicHTML()
- appendDynamicNode()
- appendDynamicText()
- appendText()
- block()
- closeElement()
- constructing
- debugBlocks()
- didAppendBounds()
- didAppendNode()
- didOpenElement()
- dom
- element
- flushElement()
- forInitialRender()
- hasBlocks
- initialize()
- nextSibling
- openElement()
- operations
- popBlock()
- popElement()
- popRemoteElement()
- pushBlockList()
- pushElement()
- pushLiveBlock()
- pushRemoteElement()
- pushSimpleBlock()
- pushUpdatableBlock()
- resume()
- setDynamicAttribute()
- setStaticAttribute()
- updateOperations
- willCloseElement()
Interfaces
InternalVM
- [ARGS$0]
- [CONSTANTS]
- associateDestroyable()
- beginCacheGroup()
- bindDynamicScope()
- call()
- commitCacheGroup()
- compile()
- context
- dynamicScope()
- elements()
- enter()
- enterItem()
- enterList()
- env
- execute()
- exit()
- exitList()
- fetch()
- fetchValue()
- getOwner()
- getSelf()
- goto()
- load()
- loadValue()
- next()
- popDynamicScope()
- popScope()
- pushChildScope()
- pushDynamicScope()
- pushFrame()
- pushRootScope()
- pushScope()
- pushUpdating()
- referenceForSymbol()
- registerItem()
- runtime
- scope()
- stack
- updateWith()
Type Aliases
Variables
variable ARGS
const ARGS: Symbol;
variable ARGS$0
const ARGS$0: Symbol;
variable array
const array: {};
Use the
{{array}}
helper to create an array to pass as an option to your components.```handlebars <MyComponent @people={{array 'Tom Dale' 'Yehuda Katz' this.myOtherPerson}} /> ``` or ```handlebars {{my-component people=(array 'Tom Dale' 'Yehuda Katz' this.myOtherPerson) }} ```
Would result in an object such as:
```js ['Tom Dale', 'Yehuda Katz', this.get('myOtherPerson')] ```
Where the 3rd item in the array is bound to updates of the
myOtherPerson
property.array
Parameter options
{Array} Array
Modifiers
@public
variable concat
const concat: {};
Concatenates the given arguments into a string.
Example:
```handlebars {{some-component name=(concat firstName " " lastName)}}
{{! would pass name="<first name value> <last name value>" to the component}} ```
or for angle bracket invocation, you actually don't need concat at all.
```handlebars <SomeComponent @name="{{firstName}} {{lastName}}" /> ```
concat
Modifiers
@public
variable CONSTANTS
const CONSTANTS: Symbol;
variable CURSOR_STACK
const CURSOR_STACK: CursorStackSymbol;
variable DESTROYABLE_STACK
const DESTROYABLE_STACK: Symbol;
variable DOMChanges
const DOMChanges: typeof DOMChangesImpl;
variable DOMTreeConstruction
const DOMTreeConstruction: typeof TreeConstruction;
variable EMPTY_ARGS
const EMPTY_ARGS: CapturedArguments;
variable EMPTY_NAMED
const EMPTY_NAMED: CapturedNamedArguments;
variable EMPTY_POSITIONAL
const EMPTY_POSITIONAL: CapturedPositionalArguments;
variable fn
const fn: {};
The
fn
helper allows you to ensure a function that you are passing off to another component, helper, or modifier has access to arguments that are available in the template.For example, if you have an
each
helper looping over a number of items, you may need to pass a function that expects to receive the item as an argument to a component invoked within the loop. Here's how you could use thefn
helper to pass both the function and its arguments together:```app/templates/components/items-listing.hbs {{#each as |item|}} <DisplayItem @item=item @select={{fn this.handleSelected item}} /> {{/each}} ```
```app/components/items-list.js import Component from '@glimmer/component'; import { action } from '@ember/object';
export default class ItemsList extends Component { handleSelected = (item) => { // ...snip... } } ```
In this case the
display-item
component will receive a normal function that it can invoke. When it invokes the function, thehandleSelected
function will receive theitem
and any arguments passed, thanks to thefn
helper.Let's take look at what that means in a couple circumstances:
- When invoked as
this.args.select()
thehandleSelected
function will receive theitem
from the loop as its first and only argument. - When invoked asthis.args.select('foo')
thehandleSelected
function will receive theitem
from the loop as its first argument and the string'foo'
as its second argument.In the example above, we used an arrow function to ensure that
handleSelected
is properly bound to theitems-list
, but let's explore what happens if we left out the arrow function:```app/components/items-list.js import Component from '@glimmer/component';
export default class ItemsList extends Component { handleSelected(item) { // ...snip... } } ```
In this example, when
handleSelected
is invoked inside thedisplay-item
component, it will **not** have access to the component instance. In other words, it will have nothis
context, so please make sure your functions are bound (via an arrow function or other means) before passing intofn
!See also [partial application](https://en.wikipedia.org/wiki/Partial_application).
fn
Modifiers
@public
variable get
const get: {};
Dynamically look up a property on an object. The second argument to
{{get}}
should have a string value, although it can be bound.For example, these two usages are equivalent:
```app/components/developer-detail.js import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking';
export default class extends Component { developer = { name: "Sandi Metz", language: "Ruby" } } ```
```handlebars {{this.developer.name}} {{get this.developer "name"}} ```
If there were several facts about a person, the
{{get}}
helper can dynamically pick one:```app/templates/application.hbs <DeveloperDetail @factName="language" /> ```
```handlebars {{get this.developer @factName}} ```
For a more complex example, this template would allow the user to switch between showing the user's height and weight with a click:
```app/components/developer-detail.js import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking';
export default class extends Component { developer = { name: "Sandi Metz", language: "Ruby" }
currentFact = 'name'
showFact = (fact) => { this.currentFact = fact; } } ```
```app/components/developer-detail.js {{get this.developer this.currentFact}}
<button {{on 'click' (fn this.showFact "name")}}>Show name <button {{on 'click' (fn this.showFact "language")}}>Show language ```
The
{{get}}
helper can also respect mutable values itself. For example:```app/components/developer-detail.js <Input @value={{mut (get this.person this.currentFact)}} />
<button {{on 'click' (fn this.showFact "name")}}>Show name <button {{on 'click' (fn this.showFact "language")}}>Show language ```
Would allow the user to swap what fact is being displayed, and also edit that fact via a two-way mutable binding.
get
Modifiers
@public
variable hash
const hash: {};
Use the
{{hash}}
helper to create a hash to pass as an option to your components. This is specially useful for contextual components where you can just yield a hash:```handlebars {{yield (hash name='Sarah' title=office )}} ```
Would result in an object such as:
```js { name: 'Sarah', title: this.get('office') } ```
Where the
title
is bound to updates of theoffice
property.Note that the hash is an empty object with no prototype chain, therefore common methods like
toString
are not available in the resulting hash. If you need to use such a method, you can use thecall
orapply
approach:```js function toString(obj) { return Object.prototype.toString.apply(obj); } ```
hash
Parameter options
{Object} Hash
Modifiers
@public
variable HEAP
const HEAP: Symbol;
variable INNER
const INNER: Symbol;
variable INNER_VM
const INNER_VM: Symbol;
variable on
const on: {};
variable OWNER
const OWNER: Symbol;
variable REGISTERS
const REGISTERS: Symbol;
variable RESOLVED
const RESOLVED: Symbol;
variable SERIALIZATION_FIRST_NODE_STRING
const SERIALIZATION_FIRST_NODE_STRING: string;
variable STACKS
const STACKS: Symbol;
variable TEMPLATE_ONLY_COMPONENT_MANAGER
const TEMPLATE_ONLY_COMPONENT_MANAGER: TemplateOnlyComponentManager;
variable TRANSACTION
const TRANSACTION: TransactionSymbol;
variable TYPE
const TYPE: Symbol;
Functions
function clear
clear: (bounds: Bounds) => Nullable<SimpleNode>;
function clientBuilder
clientBuilder: (env: Environment, cursor: CursorImpl) => ElementBuilder;
function createCapturedArgs
createCapturedArgs: ( named: Dict<Reference>, positional: Reference[]) => CapturedArguments;
function curry
curry: <T extends CurriedType>( type: T, spec: object | string | CurriedValue<T>, owner: Owner, args: CapturedArguments | null, resolved?: boolean) => CurriedValue<T>;
function dynamicAttribute
dynamicAttribute: ( element: SimpleElement, attr: string, namespace: Nullable<AttrNamespace>, isTrusting?: boolean) => DynamicAttribute;
function inTransaction
inTransaction: (env: Environment, block: () => void) => void;
function invokeHelper
invokeHelper: ( context: object, definition: object, computeArgs?: (context: object) => Arguments) => Cache<unknown>;
function isSerializationFirstNode
isSerializationFirstNode: (node: SimpleNode) => boolean;
function isWhitespace
isWhitespace: (string: string) => boolean;
function normalizeProperty
normalizeProperty: ( element: SimpleElement, slotName: string) => { normalized: any; type: any };
function rehydrationBuilder
rehydrationBuilder: (env: Environment, cursor: CursorImpl) => ElementBuilder;
function reifyArgs
reifyArgs: (args: CapturedArguments) => { named: Dict<unknown>; positional: unknown[];};
function reifyNamed
reifyNamed: (named: CapturedNamedArguments) => Dict<unknown>;
function reifyPositional
reifyPositional: (positional: CapturedPositionalArguments) => unknown[];
function renderComponent
renderComponent: ( runtime: RuntimeContext, treeBuilder: ElementBuilder, context: CompileTimeCompilationContext, owner: Owner, definition: ComponentDefinitionState, args?: Record<string, unknown>, dynamicScope?: DynamicScope) => TemplateIterator;
function renderMain
renderMain: ( runtime: RuntimeContext, context: CompileTimeCompilationContext, owner: Owner, self: Reference, treeBuilder: ElementBuilder, layout: CompilableProgram, dynamicScope?: DynamicScope) => TemplateIterator;
function renderSync
renderSync: (env: Environment, iterator: TemplateIterator) => RenderResult;
function resetDebuggerCallback
resetDebuggerCallback: () => void;
function runtimeContext
runtimeContext: ( options: EnvironmentOptions, delegate: EnvironmentDelegate, artifacts: RuntimeArtifacts, resolver: RuntimeResolver) => RuntimeContext;
function setDebuggerCallback
setDebuggerCallback: (cb: DebugCallback) => void;
function templateOnlyComponent
templateOnlyComponent: ( moduleName?: string, name?: string) => TemplateOnlyComponentDefinition;
This utility function is used to declare a given component has no backing class. When the rendering engine detects this it is able to perform a number of optimizations. Templates that are associated with
templateOnly()
will be rendered _as is_ without adding a wrapping<div>
(or any of the other element customization behaviors of [@ember/component](/ember/release/classes/Component)). Specifically, this means that the template will be rendered as "outer HTML".In general, this method will be used by build time tooling and would not be directly written in an application. However, at times it may be useful to use directly to leverage the "outer HTML" semantics mentioned above. For example, if an addon would like to use these semantics for its templates but cannot be certain it will only be consumed by applications that have enabled the
template-only-glimmer-components
optional feature.Parameter moduleName
the module name that the template only component represents, this will be used for debugging purposes EMBER_GLIMMER_SET_COMPONENT_TEMPLATE
Example 1
```js import { templateOnlyComponent } from '@glimmer/runtime';
export default templateOnlyComponent(); ```
templateOnly
Modifiers
@public
Classes
class ConcreteBounds
class ConcreteBounds implements Bounds {}
constructor
constructor(parentNode: SimpleElement, first: SimpleNode, last: SimpleNode);
property parentNode
parentNode: SimpleElement;
method firstNode
firstNode: () => SimpleNode;
method lastNode
lastNode: () => SimpleNode;
method parentElement
parentElement: () => SimpleElement;
class CurriedValue
class CurriedValue<T extends CurriedType = CurriedType> {}
property [ARGS]
[ARGS]: any;
property [INNER]
[INNER]: string | object | CurriedValue<T>;
property [OWNER]
[OWNER]: Owner;
property [RESOLVED]
[RESOLVED]: boolean;
property [TYPE]
[TYPE]: CurriedType;
class CursorImpl
class CursorImpl implements Cursor {}
constructor
constructor(element: SimpleElement, nextSibling: Nullable<SimpleNode>);
property element
element: SimpleElement;
property nextSibling
nextSibling: Nullable<SimpleNode>;
class DynamicAttribute
abstract class DynamicAttribute implements AttributeOperation {}
constructor
constructor(attribute: AttributeCursor);
property attribute
attribute: AttributeCursor;
method set
abstract set: (dom: ElementBuilder, value: unknown, env: Environment) => void;
method update
abstract update: (value: unknown, env: Environment) => void;
class DynamicScopeImpl
class DynamicScopeImpl implements DynamicScope {}
constructor
constructor(bucket?: Dict<Reference>);
method child
child: () => DynamicScopeImpl;
method get
get: (key: string) => Reference;
method set
set: (key: string, reference: Reference) => Reference;
class EnvironmentImpl
class EnvironmentImpl implements Environment {}
constructor
constructor(options: EnvironmentOptions, delegate: EnvironmentDelegate);
property [TRANSACTION]
[TRANSACTION]: Nullable<TransactionImpl>;
property appendOperations
protected appendOperations: GlimmerTreeConstruction;
property debugRenderTree
debugRenderTree: DebugRenderTreeImpl<object>;
property isArgumentCaptureError
isArgumentCaptureError: (error: any) => boolean;
property isInteractive
isInteractive: boolean;
property updateOperations
protected updateOperations?: any;
method begin
begin: () => void;
method commit
commit: () => void;
method didCreate
didCreate: (component: ComponentInstanceWithCreate) => void;
method didUpdate
didUpdate: (component: ComponentInstanceWithCreate) => void;
method getAppendOperations
getAppendOperations: () => GlimmerTreeConstruction;
method getDOM
getDOM: () => GlimmerTreeChanges;
method scheduleInstallModifier
scheduleInstallModifier: (modifier: ModifierInstance) => void;
method scheduleUpdateModifier
scheduleUpdateModifier: (modifier: ModifierInstance) => void;
class IDOMChanges
class DOMChangesImpl extends DOMOperations implements GlimmerTreeChanges {}
constructor
constructor(document: SimpleDocument);
property document
protected document: SimpleDocument;
property namespace
protected namespace: Nullable<string>;
method insertAfter
insertAfter: ( element: SimpleElement, node: SimpleNode, reference: SimpleNode) => void;
method removeAttribute
removeAttribute: (element: SimpleElement, name: string) => void;
method setAttribute
setAttribute: (element: SimpleElement, name: string, value: string) => void;
class LowLevelVM
class VM implements PublicVM, InternalVM {}
constructor
constructor( runtime: RuntimeContext, { pc, scope, dynamicScope, stack }: VMState, elementStack: ElementBuilder, context: CompileTimeCompilationContext);
End of migrated.
property [ARGS$0]
readonly [ARGS$0]: VMArgumentsImpl;
property [CONSTANTS]
readonly [CONSTANTS]: any;
property [INNER_VM]
readonly [INNER_VM]: LowLevelVM;
property context
readonly context: CompileTimeCompilationContext;
property env
readonly env: Environment;
property pc
readonly pc: number;
property program
readonly program: RuntimeProgram;
property runtime
readonly runtime: RuntimeContext;
property s0
s0: {};
property s1
s1: {};
property stack
readonly stack: EvaluationStack;
property t0
t0: {};
property t1
t1: {};
property v0
v0: {};
method associateDestroyable
associateDestroyable: (child: Destroyable) => void;
method beginCacheGroup
beginCacheGroup: (name?: string) => void;
method bindDynamicScope
bindDynamicScope: (names: string[]) => void;
method call
call: (handle: number) => void;
method capture
capture: (args: number, pc?: number) => ResumableVMState;
method captureState
captureState: (args: number, pc?: number) => VMState;
method commitCacheGroup
commitCacheGroup: () => void;
method compile
compile: (block: CompilableTemplate) => number;
method dynamicScope
dynamicScope: () => DynamicScope;
method elements
elements: () => ElementBuilder;
method empty
static empty: ( runtime: RuntimeContext, { handle, treeBuilder, dynamicScope, owner }: MinimalInitOptions, context: CompileTimeCompilationContext) => InternalVM;
method enter
enter: (args: number) => void;
method enterItem
enterItem: ({ key, value, memo }: OpaqueIterationItem) => ListItemOpcode;
method enterList
enterList: (iterableRef: Reference<OpaqueIterator>, offset: number) => void;
method execute
execute: (initialize?: (vm: this) => void) => RenderResult;
method exit
exit: () => void;
method exitList
exitList: () => void;
method fetch
fetch: (register: SyscallRegister) => void;
method fetchValue
fetchValue: { (register: MachineRegister): number; <T>(register: Register): T };
method getOwner
getOwner: () => Owner;
method getSelf
getSelf: () => Reference<any>;
method goto
goto: (offset: number) => void;
method initial
static initial: ( runtime: RuntimeContext, context: CompileTimeCompilationContext, { handle, self, dynamicScope, treeBuilder, numSymbols, owner }: InitOptions) => InternalVM;
method listBlock
listBlock: () => ListBlockOpcode;
method load
load: (register: SyscallRegister) => void;
method loadValue
loadValue: <T>(register: Register | MachineRegister, value: T) => void;
method next
next: () => RichIteratorResult<null, RenderResult>;
method popDynamicScope
popDynamicScope: () => void;
method popFrame
popFrame: () => void;
method popScope
popScope: () => void;
method popUpdating
popUpdating: () => UpdatingOpcode[];
method pushChildScope
pushChildScope: () => void;
method pushDynamicScope
pushDynamicScope: () => DynamicScope;
method pushFrame
pushFrame: () => void;
Migrated to Inner
method pushRootScope
pushRootScope: (size: number, owner: Owner) => PartialScope;
method pushScope
pushScope: (scope: Scope) => void;
method pushUpdating
pushUpdating: (list?: UpdatingOpcode[]) => void;
method referenceForSymbol
referenceForSymbol: (symbol: number) => Reference;
method registerItem
registerItem: (opcode: ListItemOpcode) => void;
method return
return: () => void;
method returnTo
returnTo: (offset: number) => void;
method scope
scope: () => Scope;
method tryUpdating
tryUpdating: () => Nullable<UpdatingOpcode[]>;
method updateWith
updateWith: (opcode: UpdatingOpcode) => void;
method updating
updating: () => UpdatingOpcode[];
class NewElementBuilder
class NewElementBuilder implements ElementBuilder {}
constructor
constructor( env: Environment, parentNode: SimpleElement, nextSibling: Nullable<SimpleNode>);
property [CURSOR_STACK]
[CURSOR_STACK]: Stack$0<Cursor>;
property constructing
constructing: Nullable<SimpleElement>;
property dom
dom: GlimmerTreeConstruction;
property element
readonly element: SimpleElement;
property hasBlocks
readonly hasBlocks: boolean;
property nextSibling
readonly nextSibling: Nullable<SimpleNode>;
property operations
operations: Nullable<ElementOperations>;
property updateOperations
updateOperations: GlimmerTreeChanges;
method appendComment
appendComment: (string: string) => SimpleComment;
method appendDynamicFragment
appendDynamicFragment: (value: SimpleDocumentFragment) => void;
method appendDynamicHTML
appendDynamicHTML: (value: string) => void;
method appendDynamicNode
appendDynamicNode: (value: SimpleNode) => void;
method appendDynamicText
appendDynamicText: (value: string) => SimpleText;
method appendText
appendText: (string: string) => SimpleText;
method block
protected block: () => LiveBlock;
method closeElement
closeElement: () => Nullable<ModifierInstance[]>;
method debugBlocks
debugBlocks: () => LiveBlock[];
method didAppendBounds
didAppendBounds: (bounds: Bounds) => Bounds;
method didAppendNode
didAppendNode: <T extends SimpleNode>(node: T) => T;
method didOpenElement
didOpenElement: (element: SimpleElement) => SimpleElement;
method flushElement
flushElement: (modifiers: Nullable<ModifierInstance[]>) => void;
method forInitialRender
static forInitialRender: ( env: Environment, cursor: CursorImpl) => NewElementBuilder;
method initialize
protected initialize: () => this;
method openElement
openElement: (tag: string) => SimpleElement;
method popBlock
popBlock: () => LiveBlock;
method popElement
popElement: () => void;
method popRemoteElement
popRemoteElement: () => RemoteLiveBlock;
method pushBlockList
pushBlockList: (list: LiveBlock[]) => LiveBlockList;
method pushElement
protected pushElement: ( element: SimpleElement, nextSibling?: Maybe<SimpleNode>) => void;
method pushLiveBlock
protected pushLiveBlock: <T extends LiveBlock>( block: T, isRemote?: boolean) => T;
method pushRemoteElement
pushRemoteElement: ( element: SimpleElement, guid: string, insertBefore: Maybe<SimpleNode>) => RemoteLiveBlock;
method pushSimpleBlock
pushSimpleBlock: () => LiveBlock;
method pushUpdatableBlock
pushUpdatableBlock: () => UpdatableBlockImpl;
method resume
static resume: (env: Environment, block: UpdatableBlock) => NewElementBuilder;
method setDynamicAttribute
setDynamicAttribute: ( name: string, value: unknown, trusting: boolean, namespace: Nullable<AttrNamespace>) => DynamicAttribute;
method setStaticAttribute
setStaticAttribute: ( name: string, value: string, namespace: Nullable<AttrNamespace>) => void;
method willCloseElement
willCloseElement: () => void;
class PartialScopeImpl
class PartialScopeImpl implements PartialScope {}
constructor
constructor( slots: ScopeSlot[], owner: Owner, callerScope: any, evalScope: any, partialMap: any);
property owner
readonly owner: Owner;
property slots
readonly slots: ScopeSlot[];
method bind
bind: (symbol: number, value: ScopeSlot) => void;
method bindBlock
bindBlock: (symbol: number, value: Nullable<ScopeBlock>) => void;
method bindCallerScope
bindCallerScope: (scope: Nullable<Scope>) => void;
method bindEvalScope
bindEvalScope: (map: Nullable<Dict<ScopeSlot>>) => void;
method bindPartialMap
bindPartialMap: (map: Dict<Reference<unknown>>) => void;
method bindSelf
bindSelf: (self: Reference<unknown>) => void;
method bindSymbol
bindSymbol: (symbol: number, value: Reference<unknown>) => void;
method child
child: () => Scope;
method getBlock
getBlock: (symbol: number) => Nullable<ScopeBlock>;
method getCallerScope
getCallerScope: () => Nullable<Scope>;
method getEvalScope
getEvalScope: () => Nullable<Dict<ScopeSlot>>;
method getPartialMap
getPartialMap: () => Nullable<Dict<Reference<unknown>>>;
method getSelf
getSelf: () => Reference<unknown>;
method getSymbol
getSymbol: (symbol: number) => Reference<unknown>;
method init
init: ({ self }: { self: Reference<unknown> }) => this;
method root
static root: ( self: Reference<unknown>, size: number, owner: Owner) => PartialScope;
method sized
static sized: (size: number, owner: Owner) => Scope;
class RehydrateBuilder
class RehydrateBuilder extends NewElementBuilder implements ElementBuilder {}
constructor
constructor( env: Environment, parentNode: SimpleElement, nextSibling: Nullable<SimpleNode>);
property [CURSOR_STACK]
[CURSOR_STACK]: Stack$0<RehydratingCursor>;
property blockDepth
blockDepth: number;
property candidate
candidate: Nullable<SimpleNode>;
property currentCursor
readonly currentCursor: Nullable<RehydratingCursor>;
property startingBlockOffset
startingBlockOffset: number;
method didAppendBounds
didAppendBounds: (bounds: Bounds) => Bounds;
method disableRehydration
disableRehydration: (nextSibling: Nullable<SimpleNode>) => void;
method enableRehydration
enableRehydration: (candidate: Nullable<SimpleNode>) => void;
method getMarker
getMarker: (element: HTMLElement, guid: string) => Nullable<SimpleNode>;
method pushElement
pushElement: ( this: | RehydrateBuilder | (NewElementBuilder & Partial<Pick<RehydrateBuilder, 'blockDepth' | 'candidate'>>), element: SimpleElement, nextSibling?: Maybe<SimpleNode>) => void;
method remove
protected remove: (node: SimpleNode) => Nullable<SimpleNode>;
method willCloseElement
willCloseElement: () => void;
class RemoteLiveBlock
class RemoteLiveBlock extends SimpleLiveBlock {}
constructor
constructor(parent: SimpleElement);
class SimpleDynamicAttribute
class SimpleDynamicAttribute extends DynamicAttribute {}
class TemplateOnlyComponent
class TemplateOnlyComponentDefinition {}
constructor
constructor(moduleName?: string, name?: string);
property moduleName
moduleName: string;
property name
name: string;
method toString
toString: () => string;
class TemplateOnlyComponentManager
class TemplateOnlyComponentManager implements InternalComponentManager {}
method getCapabilities
getCapabilities: () => InternalComponentCapabilities;
method getDebugName
getDebugName: ({ name }: TemplateOnlyComponentDefinition) => string;
method getDestroyable
getDestroyable: () => null;
method getSelf
getSelf: () => Reference;
class UpdatableBlockImpl
class UpdatableBlockImpl extends SimpleLiveBlock implements UpdatableBlock {}
method reset
reset: () => Nullable<SimpleNode>;
class UpdatingVM
class UpdatingVM implements IUpdatingVM {}
constructor
constructor( env: Environment, { alwaysRevalidate }: { alwaysRevalidate?: boolean });
property alwaysRevalidate
alwaysRevalidate: boolean;
property dom
dom: GlimmerTreeChanges;
property env
env: Environment;
method execute
execute: (opcodes: UpdatingOpcode[], handler: ExceptionHandler) => void;
method goto
goto: (index: number) => void;
method throw
throw: () => void;
method try
try: (ops: UpdatingOpcode[], handler: Nullable<ExceptionHandler>) => void;
Interfaces
interface EnvironmentDelegate
interface EnvironmentDelegate {}
property enableDebugTooling
enableDebugTooling: boolean;
Used to enable debug tooling
property isInteractive
isInteractive: boolean;
Used to determine the the environment is interactive (e.g. SSR is not interactive). Interactive environments schedule modifiers, among other things.
property onTransactionCommit
onTransactionCommit: () => void;
Callback to be called when an environment transaction commits
interface InternalVM
interface InternalVM {}
This interface is used by internal opcodes, and is more stable than the implementation of the Append VM itself.
property [ARGS$0]
readonly [ARGS$0]: VMArgumentsImpl;
property [CONSTANTS]
readonly [CONSTANTS]: RuntimeConstants & ResolutionTimeConstants;
property context
readonly context: CompileTimeCompilationContext;
property env
readonly env: Environment;
property runtime
readonly runtime: RuntimeContext;
property stack
readonly stack: EvaluationStack;
method associateDestroyable
associateDestroyable: (d: Destroyable) => void;
method beginCacheGroup
beginCacheGroup: (name?: string) => void;
method bindDynamicScope
bindDynamicScope: (names: string[]) => void;
method call
call: (handle: number) => void;
method commitCacheGroup
commitCacheGroup: () => void;
method compile
compile: (block: CompilableTemplate) => number;
method dynamicScope
dynamicScope: () => DynamicScope;
method elements
elements: () => ElementBuilder;
method enter
enter: (args: number) => void;
method enterItem
enterItem: (item: OpaqueIterationItem) => ListItemOpcode;
method enterList
enterList: (iterableRef: Reference<OpaqueIterator>, offset: number) => void;
method execute
execute: (initialize?: (vm: this) => void) => RenderResult;
method exit
exit: () => void;
method exitList
exitList: () => void;
method fetch
fetch: (register: Register) => void;
method fetchValue
fetchValue: { (register: MachineRegister.ra | MachineRegister.pc): number; <T>(register: Register): T; (register: Register): unknown;};
method getOwner
getOwner: () => Owner;
method getSelf
getSelf: () => Reference;
method goto
goto: (pc: number) => void;
method load
load: (register: Register) => void;
method loadValue
loadValue: { (register: MachineRegister, value: number): void; (register: Register, value: unknown): void; (register: any, value: unknown): void;};
method next
next: () => RichIteratorResult<null, RenderResult>;
method popDynamicScope
popDynamicScope: () => void;
method popScope
popScope: () => void;
method pushChildScope
pushChildScope: () => void;
method pushDynamicScope
pushDynamicScope: () => void;
method pushFrame
pushFrame: () => void;
method pushRootScope
pushRootScope: (size: number, owner: Owner) => PartialScope;
method pushScope
pushScope: (scope: Scope) => void;
method pushUpdating
pushUpdating: (list?: UpdatingOpcode[]) => void;
method referenceForSymbol
referenceForSymbol: (symbol: number) => Reference;
method registerItem
registerItem: (item: ListItemOpcode) => void;
method scope
scope: () => Scope;
method updateWith
updateWith: (opcode: UpdatingOpcode) => void;
interface SafeString
interface SafeString {}
method toHTML
toHTML: () => string;
Type Aliases
type DebugCallback
type DebugCallback = (context: unknown, get: DebugGet) => void;
type DOMTreeConstruction
type DOMTreeConstruction = TreeConstruction;
type IteratorResult
type IteratorResult<T> = RichIteratorResult<null, T>;
Package Files (1)
Dependencies (12)
Dev Dependencies (9)
Peer Dependencies (0)
No peer dependencies.
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@glimmer/runtime
.
- Markdown[![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/@glimmer/runtime)
- HTML<a href="https://www.jsdocs.io/package/@glimmer/runtime"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 6449 ms. - Missing or incorrect documentation? Open an issue for this package.