var Opcodes; (function (Opcodes) { // Statements Opcodes[Opcodes["Text"] = 0] = "Text"; Opcodes[Opcodes["Append"] = 1] = "Append"; Opcodes[Opcodes["Comment"] = 2] = "Comment"; Opcodes[Opcodes["Modifier"] = 3] = "Modifier"; Opcodes[Opcodes["Block"] = 4] = "Block"; Opcodes[Opcodes["Component"] = 5] = "Component"; Opcodes[Opcodes["DynamicComponent"] = 6] = "DynamicComponent"; Opcodes[Opcodes["OpenElement"] = 7] = "OpenElement"; Opcodes[Opcodes["OpenSplattedElement"] = 8] = "OpenSplattedElement"; Opcodes[Opcodes["FlushElement"] = 9] = "FlushElement"; Opcodes[Opcodes["CloseElement"] = 10] = "CloseElement"; Opcodes[Opcodes["StaticAttr"] = 11] = "StaticAttr"; Opcodes[Opcodes["DynamicAttr"] = 12] = "DynamicAttr"; Opcodes[Opcodes["AttrSplat"] = 13] = "AttrSplat"; Opcodes[Opcodes["Yield"] = 14] = "Yield"; Opcodes[Opcodes["Partial"] = 15] = "Partial"; Opcodes[Opcodes["DynamicArg"] = 16] = "DynamicArg"; Opcodes[Opcodes["StaticArg"] = 17] = "StaticArg"; Opcodes[Opcodes["TrustingAttr"] = 18] = "TrustingAttr"; Opcodes[Opcodes["Debugger"] = 19] = "Debugger"; Opcodes[Opcodes["ClientSideStatement"] = 20] = "ClientSideStatement"; // Expressions Opcodes[Opcodes["Unknown"] = 21] = "Unknown"; Opcodes[Opcodes["Get"] = 22] = "Get"; Opcodes[Opcodes["MaybeLocal"] = 23] = "MaybeLocal"; Opcodes[Opcodes["HasBlock"] = 24] = "HasBlock"; Opcodes[Opcodes["HasBlockParams"] = 25] = "HasBlockParams"; Opcodes[Opcodes["Undefined"] = 26] = "Undefined"; Opcodes[Opcodes["Helper"] = 27] = "Helper"; Opcodes[Opcodes["Concat"] = 28] = "Concat"; Opcodes[Opcodes["ClientSideExpression"] = 29] = "ClientSideExpression"; })(Opcodes || (Opcodes = {})); function is(variant) { return function (value) { return Array.isArray(value) && value[0] === variant; }; } // Statements const isFlushElement = is(Opcodes.FlushElement); const isAttrSplat = is(Opcodes.AttrSplat); function isAttribute(val) { return val[0] === Opcodes.StaticAttr || val[0] === Opcodes.DynamicAttr || val[0] === Opcodes.TrustingAttr; } function isArgument(val) { return val[0] === Opcodes.StaticArg || val[0] === Opcodes.DynamicArg; } // Expressions const isGet = is(Opcodes.Get); const isMaybeLocal = is(Opcodes.MaybeLocal); export { is, isFlushElement, isAttrSplat, isAttribute, isArgument, isGet, isMaybeLocal, Opcodes as Ops };