{"version":3,"names":["ScopeFlag","OTHER","PROGRAM","FUNCTION","ARROW","SIMPLE_CATCH","SUPER","DIRECT_SUPER","CLASS","STATIC_BLOCK","TS_MODULE","VAR","exports","BindingFlag","KIND_VALUE","KIND_TYPE","SCOPE_VAR","SCOPE_LEXICAL","SCOPE_FUNCTION","SCOPE_OUTSIDE","FLAG_NONE","FLAG_CLASS","FLAG_TS_ENUM","FLAG_TS_CONST_ENUM","FLAG_TS_EXPORT_ONLY","FLAG_FLOW_DECLARE_FN","FLAG_TS_IMPORT","FLAG_NO_LET_IN_LEXICAL","TYPE_CLASS","TYPE_LEXICAL","TYPE_CATCH_PARAM","TYPE_VAR","TYPE_FUNCTION","TYPE_TS_INTERFACE","TYPE_TS_TYPE","TYPE_TS_ENUM","TYPE_TS_AMBIENT","TYPE_NONE","TYPE_OUTSIDE","TYPE_TS_CONST_ENUM","TYPE_TS_NAMESPACE","TYPE_TS_TYPE_IMPORT","TYPE_TS_VALUE_IMPORT","TYPE_FLOW_DECLARE_FN","ClassElementType","FLAG_STATIC","KIND_GETTER","KIND_SETTER","KIND_ACCESSOR","STATIC_GETTER","STATIC_SETTER","INSTANCE_GETTER","INSTANCE_SETTER"],"sources":["../../src/util/scopeflags.ts"],"sourcesContent":["// Each scope gets a bitset that may contain these flags\n/* eslint-disable prettier/prettier */\n/* prettier-ignore */\nexport const enum ScopeFlag {\n OTHER = 0b000000000,\n PROGRAM = 0b000000001,\n FUNCTION = 0b000000010,\n ARROW = 0b000000100,\n SIMPLE_CATCH = 0b000001000,\n SUPER = 0b000010000,\n DIRECT_SUPER = 0b000100000,\n CLASS = 0b001000000,\n STATIC_BLOCK = 0b010000000,\n TS_MODULE = 0b100000000,\n VAR = PROGRAM | FUNCTION | STATIC_BLOCK | TS_MODULE,\n}\n\n/* prettier-ignore */\nexport const enum BindingFlag {\n // These flags are meant to be _only_ used inside the Scope class (or subclasses).\n KIND_VALUE = 0b0000000_0000_01,\n KIND_TYPE = 0b0000000_0000_10,\n // Used in checkLVal and declareName to determine the type of a binding\n SCOPE_VAR = 0b0000000_0001_00, // Var-style binding\n SCOPE_LEXICAL = 0b0000000_0010_00, // Let- or const-style binding\n SCOPE_FUNCTION = 0b0000000_0100_00, // Function declaration\n SCOPE_OUTSIDE = 0b0000000_1000_00, // Special case for function names as\n // bound inside the function\n // Misc flags\n FLAG_NONE = 0b00000001_0000_00,\n FLAG_CLASS = 0b00000010_0000_00,\n FLAG_TS_ENUM = 0b00000100_0000_00,\n FLAG_TS_CONST_ENUM = 0b00001000_0000_00,\n FLAG_TS_EXPORT_ONLY = 0b00010000_0000_00,\n FLAG_FLOW_DECLARE_FN = 0b00100000_0000_00,\n FLAG_TS_IMPORT = 0b01000000_0000_00,\n // Whether \"let\" should be allowed in bound names in sloppy mode\n FLAG_NO_LET_IN_LEXICAL = 0b10000000_0000_00,\n\n // These flags are meant to be _only_ used by Scope consumers\n/* prettier-ignore */\n /* = is value? | is type? | scope | misc flags */\n TYPE_CLASS = KIND_VALUE | KIND_TYPE | SCOPE_LEXICAL | FLAG_CLASS|FLAG_NO_LET_IN_LEXICAL,\n TYPE_LEXICAL = KIND_VALUE | 0 | SCOPE_LEXICAL | FLAG_NO_LET_IN_LEXICAL,\n TYPE_CATCH_PARAM = KIND_VALUE | 0 | SCOPE_LEXICAL | 0,\n TYPE_VAR = KIND_VALUE | 0 | SCOPE_VAR | 0,\n TYPE_FUNCTION = KIND_VALUE | 0 | SCOPE_FUNCTION | 0,\n TYPE_TS_INTERFACE = 0 | KIND_TYPE | 0 | FLAG_CLASS,\n TYPE_TS_TYPE = 0 | KIND_TYPE | 0 | 0,\n TYPE_TS_ENUM = KIND_VALUE | KIND_TYPE | SCOPE_LEXICAL | FLAG_TS_ENUM|FLAG_NO_LET_IN_LEXICAL,\n TYPE_TS_AMBIENT = 0 | 0 | 0 | FLAG_TS_EXPORT_ONLY,\n // These bindings don't introduce anything in the scope. They are used for assignments and\n // function expressions IDs.\n TYPE_NONE = 0 | 0 | 0 | FLAG_NONE,\n TYPE_OUTSIDE = KIND_VALUE | 0 | 0 | FLAG_NONE,\n TYPE_TS_CONST_ENUM = TYPE_TS_ENUM | FLAG_TS_CONST_ENUM,\n TYPE_TS_NAMESPACE = 0 | 0 | 0 | FLAG_TS_EXPORT_ONLY,\n TYPE_TS_TYPE_IMPORT = 0 | KIND_TYPE | 0 | FLAG_TS_IMPORT,\n TYPE_TS_VALUE_IMPORT = 0 | 0 | 0 | FLAG_TS_IMPORT,\n TYPE_FLOW_DECLARE_FN = 0 | 0 | 0 | FLAG_FLOW_DECLARE_FN,\n}\n\nexport type BindingTypes =\n | BindingFlag.TYPE_NONE\n | BindingFlag.TYPE_OUTSIDE\n | BindingFlag.TYPE_VAR\n | BindingFlag.TYPE_LEXICAL\n | BindingFlag.TYPE_CLASS\n | BindingFlag.TYPE_CATCH_PARAM\n | BindingFlag.TYPE_FUNCTION\n | BindingFlag.TYPE_TS_INTERFACE\n | BindingFlag.TYPE_TS_TYPE\n | BindingFlag.TYPE_TS_TYPE_IMPORT\n | BindingFlag.TYPE_TS_VALUE_IMPORT\n | BindingFlag.TYPE_TS_ENUM\n | BindingFlag.TYPE_TS_AMBIENT\n | BindingFlag.TYPE_TS_NAMESPACE\n | BindingFlag.TYPE_TS_CONST_ENUM\n | BindingFlag.TYPE_FLOW_DECLARE_FN;\n\n/* prettier-ignore */\nexport const enum ClassElementType {\n OTHER = 0,\n FLAG_STATIC = 0b1_00,\n KIND_GETTER = 0b0_10,\n KIND_SETTER = 0b0_01,\n KIND_ACCESSOR = KIND_GETTER | KIND_SETTER,\n\n STATIC_GETTER = FLAG_STATIC | KIND_GETTER,\n STATIC_SETTER = FLAG_STATIC | KIND_SETTER,\n INSTANCE_GETTER = KIND_GETTER,\n INSTANCE_SETTER = KIND_SETTER,\n}\n"],"mappings":";;;;;;IAGkBA,SAAS;EAAAC,KAAA;EAAAC,OAAA;EAAAC,QAAA;EAAAC,KAAA;EAAAC,YAAA;EAAAC,KAAA;EAAAC,YAAA;EAAAC,KAAA;EAAAC,YAAA;EAAAC,SAAA;EAAAC,GAAA;AAAA;AAAAC,OAAA,CAAAZ,SAAA,GAAAA,SAAA;AAAA,IAeTa,WAAW;EAAAC,UAAA;EAAAC,SAAA;EAAAC,SAAA;EAAAC,aAAA;EAAAC,cAAA;EAAAC,aAAA;EAAAC,SAAA;EAAAC,UAAA;EAAAC,YAAA;EAAAC,kBAAA;EAAAC,mBAAA;EAAAC,oBAAA;EAAAC,cAAA;EAAAC,sBAAA;EAAAC,UAAA;EAAAC,YAAA;EAAAC,gBAAA;EAAAC,QAAA;EAAAC,aAAA;EAAAC,iBAAA;EAAAC,YAAA;EAAAC,YAAA;EAAAC,eAAA;EAAAC,SAAA;EAAAC,YAAA;EAAAC,kBAAA;EAAAC,iBAAA;EAAAC,mBAAA;EAAAC,oBAAA;EAAAC,oBAAA;AAAA;AAAA/B,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAAA,IA+DX+B,gBAAgB;EAAA3C,KAAA;EAAA4C,WAAA;EAAAC,WAAA;EAAAC,WAAA;EAAAC,aAAA;EAAAC,aAAA;EAAAC,aAAA;EAAAC,eAAA;EAAAC,eAAA;AAAA;AAAAxC,OAAA,CAAAgC,gBAAA,GAAAA,gBAAA"}