brighterscript 0.66.0-alpha.9 → 0.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +116 -73
- package/README.md +14 -418
- package/dist/BsConfig.d.ts +25 -2
- package/dist/Cache.js +3 -3
- package/dist/Cache.js.map +1 -1
- package/dist/CodeActionUtil.d.ts +3 -3
- package/dist/CodeActionUtil.js.map +1 -1
- package/dist/CommentFlagProcessor.d.ts +3 -4
- package/dist/CommentFlagProcessor.js +4 -3
- package/dist/CommentFlagProcessor.js.map +1 -1
- package/dist/DependencyGraph.js +8 -8
- package/dist/DependencyGraph.js.map +1 -1
- package/dist/DiagnosticFilterer.d.ts +8 -4
- package/dist/DiagnosticFilterer.js +71 -38
- package/dist/DiagnosticFilterer.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +15 -36
- package/dist/DiagnosticMessages.js +15 -61
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/DiagnosticSeverityAdjuster.js +3 -0
- package/dist/DiagnosticSeverityAdjuster.js.map +1 -1
- package/dist/FunctionScope.d.ts +2 -3
- package/dist/FunctionScope.js +0 -3
- package/dist/FunctionScope.js.map +1 -1
- package/dist/LanguageServer.d.ts +1 -2
- package/dist/LanguageServer.js +29 -35
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Logger.d.ts +5 -9
- package/dist/Logger.js +18 -22
- package/dist/Logger.js.map +1 -1
- package/dist/PluginInterface.d.ts +13 -15
- package/dist/PluginInterface.js +16 -70
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +105 -138
- package/dist/Program.js +479 -702
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.d.ts +8 -19
- package/dist/ProgramBuilder.js +82 -87
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/Scope.d.ts +56 -46
- package/dist/Scope.js +281 -217
- package/dist/Scope.js.map +1 -1
- package/dist/Stopwatch.js +1 -1
- package/dist/Stopwatch.js.map +1 -1
- package/dist/SymbolTable.d.ts +12 -68
- package/dist/SymbolTable.js +28 -213
- package/dist/SymbolTable.js.map +1 -1
- package/dist/XmlScope.d.ts +5 -7
- package/dist/XmlScope.js +36 -76
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/{Editor.d.ts → AstEditor.d.ts} +1 -6
- package/dist/astUtils/{Editor.js → AstEditor.js} +3 -9
- package/dist/astUtils/AstEditor.js.map +1 -0
- package/dist/astUtils/{Editor.spec.js → AstEditor.spec.js} +6 -10
- package/dist/astUtils/AstEditor.spec.js.map +1 -0
- package/dist/astUtils/creators.d.ts +8 -19
- package/dist/astUtils/creators.js +22 -54
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/creators.spec.js +0 -10
- package/dist/astUtils/creators.spec.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +45 -81
- package/dist/astUtils/reflection.js +157 -220
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +19 -96
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +14 -18
- package/dist/astUtils/visitors.js +9 -22
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +9 -62
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/astUtils/xml.d.ts +9 -9
- package/dist/astUtils/xml.js +6 -6
- package/dist/astUtils/xml.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +8 -11
- package/dist/bscPlugin/BscPlugin.js +21 -29
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.d.ts +6 -5
- package/dist/bscPlugin/CallExpressionInfo.js +2 -2
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +11 -11
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +4 -4
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -49
- package/dist/bscPlugin/completions/CompletionsProcessor.js +23 -424
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js +200 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js +87 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
- package/dist/bscPlugin/hover/HoverProcessor.d.ts +3 -7
- package/dist/bscPlugin/hover/HoverProcessor.js +88 -128
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +24 -336
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
- package/dist/bscPlugin/references/ReferencesProvider.js +56 -0
- package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
- package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
- package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +0 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +5 -49
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +0 -22
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +290 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +1 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +245 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +1 -0
- package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
- package/dist/bscPlugin/symbols/symbolUtils.js +140 -0
- package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
- package/dist/bscPlugin/transpile/{BrsFileTranspileProcessor.d.ts → BrsFilePreTranspileProcessor.d.ts} +2 -4
- package/dist/bscPlugin/transpile/{BrsFileTranspileProcessor.js → BrsFilePreTranspileProcessor.js} +15 -36
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -0
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +46 -0
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -0
- package/dist/bscPlugin/validation/BrsFileValidator.d.ts +1 -0
- package/dist/bscPlugin/validation/BrsFileValidator.js +30 -41
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js +2 -2
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
- package/dist/bscPlugin/validation/ProgramValidator.d.ts +3 -3
- package/dist/bscPlugin/validation/ProgramValidator.js +6 -6
- package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +6 -28
- package/dist/bscPlugin/validation/ScopeValidator.js +166 -387
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/XmlFileValidator.js +9 -9
- package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
- package/dist/diagnosticUtils.d.ts +2 -3
- package/dist/diagnosticUtils.js +5 -5
- package/dist/diagnosticUtils.js.map +1 -1
- package/dist/examples/plugins/removePrint.js +1 -1
- package/dist/examples/plugins/removePrint.js.map +1 -1
- package/dist/files/BrsFile.Class.spec.js +143 -114
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +61 -83
- package/dist/files/BrsFile.js +552 -607
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +1365 -1201
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.d.ts +28 -56
- package/dist/files/XmlFile.js +103 -89
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/XmlFile.spec.js +179 -122
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/files/tests/imports.spec.js +19 -29
- package/dist/files/tests/imports.spec.js.map +1 -1
- package/dist/files/tests/optionalChaning.spec.js +14 -14
- package/dist/files/tests/optionalChaning.spec.js.map +1 -1
- package/dist/globalCallables.js +83 -88
- package/dist/globalCallables.js.map +1 -1
- package/dist/index.d.ts +1 -9
- package/dist/index.js +1 -9
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +173 -423
- package/dist/interfaces.js +0 -24
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Lexer.d.ts +9 -15
- package/dist/lexer/Lexer.js +35 -46
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +48 -40
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/Token.d.ts +1 -5
- package/dist/lexer/Token.js +1 -1
- package/dist/lexer/Token.js.map +1 -1
- package/dist/lexer/TokenKind.d.ts +0 -6
- package/dist/lexer/TokenKind.js +2 -14
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/logging.d.ts +9 -0
- package/dist/logging.js +16 -0
- package/dist/logging.js.map +1 -0
- package/dist/parser/AstNode.d.ts +6 -90
- package/dist/parser/AstNode.js +5 -96
- package/dist/parser/AstNode.js.map +1 -1
- package/dist/parser/AstNode.spec.js.map +1 -1
- package/dist/parser/BrsTranspileState.d.ts +3 -4
- package/dist/parser/BrsTranspileState.js +2 -3
- package/dist/parser/BrsTranspileState.js.map +1 -1
- package/dist/parser/Expression.d.ts +114 -137
- package/dist/parser/Expression.js +244 -373
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +19 -46
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.d.ts +18 -14
- package/dist/parser/Parser.js +196 -175
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.d.ts +0 -2
- package/dist/parser/Parser.spec.js +10 -674
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.d.ts +6 -44
- package/dist/parser/SGParser.js +198 -194
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGParser.spec.js +11 -14
- package/dist/parser/SGParser.spec.js.map +1 -1
- package/dist/parser/SGTypes.d.ts +52 -280
- package/dist/parser/SGTypes.js +185 -562
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/Statement.d.ts +140 -172
- package/dist/parser/Statement.js +201 -337
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/Statement.spec.js.map +1 -1
- package/dist/parser/TranspileState.d.ts +3 -2
- package/dist/parser/TranspileState.js +8 -10
- package/dist/parser/TranspileState.js.map +1 -1
- package/dist/parser/tests/Parser.spec.js +3 -5
- package/dist/parser/tests/Parser.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/For.spec.js +8 -16
- package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.js +6 -12
- package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/While.spec.js +4 -8
- package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
- package/dist/parser/tests/expression/Call.spec.js +4 -4
- package/dist/parser/tests/expression/Call.spec.js.map +1 -1
- package/dist/parser/tests/expression/Indexing.spec.js +25 -0
- package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +73 -29
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +10 -10
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +24 -24
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +47 -35
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +83 -36
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/UnaryExpression.spec.js +2 -2
- package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +26 -27
- package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Continue.spec.js +2 -2
- package/dist/parser/tests/statement/Continue.spec.js.map +1 -1
- package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
- package/dist/parser/tests/statement/Enum.spec.js +393 -90
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
- package/dist/parser/tests/statement/For.spec.js +6 -6
- package/dist/parser/tests/statement/For.spec.js.map +1 -1
- package/dist/parser/tests/statement/ForEach.spec.js +4 -4
- package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/statement/Function.spec.js +1 -1
- package/dist/parser/tests/statement/Function.spec.js.map +1 -1
- package/dist/parser/tests/statement/InterfaceStatement.spec.js +18 -18
- package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +13 -16
- package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/ReturnStatement.spec.js +3 -5
- package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Set.spec.js +13 -26
- package/dist/parser/tests/statement/Set.spec.js.map +1 -1
- package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
- package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
- package/dist/preprocessor/Chunk.js +1 -2
- package/dist/preprocessor/Chunk.js.map +1 -1
- package/dist/preprocessor/Preprocessor.d.ts +3 -4
- package/dist/preprocessor/Preprocessor.js +3 -3
- package/dist/preprocessor/Preprocessor.js.map +1 -1
- package/dist/preprocessor/PreprocessorParser.js +8 -1
- package/dist/preprocessor/PreprocessorParser.js.map +1 -1
- package/dist/roku-types/data.json +293 -243
- package/dist/roku-types/index.d.ts +38 -17
- package/dist/types/ArrayType.d.ts +4 -9
- package/dist/types/ArrayType.js +24 -72
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/ArrayType.spec.js +10 -39
- package/dist/types/ArrayType.spec.js.map +1 -1
- package/dist/types/BooleanType.d.ts +4 -8
- package/dist/types/BooleanType.js +8 -19
- package/dist/types/BooleanType.js.map +1 -1
- package/dist/types/BooleanType.spec.js +3 -9
- package/dist/types/BooleanType.spec.js.map +1 -1
- package/dist/types/BscType.d.ts +2 -29
- package/dist/types/BscType.js +0 -113
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/CustomType.d.ts +9 -0
- package/dist/types/CustomType.js +32 -0
- package/dist/types/CustomType.js.map +1 -0
- package/dist/types/DoubleType.d.ts +4 -8
- package/dist/types/DoubleType.js +20 -23
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/DoubleType.spec.js +3 -11
- package/dist/types/DoubleType.spec.js.map +1 -1
- package/dist/types/DynamicType.d.ts +3 -9
- package/dist/types/DynamicType.js +2 -18
- package/dist/types/DynamicType.js.map +1 -1
- package/dist/types/DynamicType.spec.js +4 -15
- package/dist/types/DynamicType.spec.js.map +1 -1
- package/dist/types/FloatType.d.ts +4 -8
- package/dist/types/FloatType.js +20 -23
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/FloatType.spec.js +3 -3
- package/dist/types/FloatType.spec.js.map +1 -1
- package/dist/types/FunctionType.d.ts +20 -10
- package/dist/types/FunctionType.js +52 -27
- package/dist/types/FunctionType.js.map +1 -1
- package/dist/types/FunctionType.spec.js +23 -0
- package/dist/types/FunctionType.spec.js.map +1 -0
- package/dist/types/IntegerType.d.ts +4 -8
- package/dist/types/IntegerType.js +20 -23
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/IntegerType.spec.js +3 -7
- package/dist/types/IntegerType.spec.js.map +1 -1
- package/dist/types/InterfaceType.d.ts +10 -12
- package/dist/types/InterfaceType.js +48 -23
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/InterfaceType.spec.js +45 -82
- package/dist/types/InterfaceType.spec.js.map +1 -1
- package/dist/types/InvalidType.d.ts +4 -7
- package/dist/types/InvalidType.js +8 -18
- package/dist/types/InvalidType.js.map +1 -1
- package/dist/types/InvalidType.spec.js +3 -7
- package/dist/types/InvalidType.spec.js.map +1 -1
- package/dist/types/LongIntegerType.d.ts +4 -8
- package/dist/types/LongIntegerType.js +20 -23
- package/dist/types/LongIntegerType.js.map +1 -1
- package/dist/types/LongIntegerType.spec.js +3 -9
- package/dist/types/LongIntegerType.spec.js.map +1 -1
- package/dist/types/ObjectType.d.ts +4 -8
- package/dist/types/ObjectType.js +7 -21
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ObjectType.spec.js +2 -2
- package/dist/types/ObjectType.spec.js.map +1 -1
- package/dist/types/StringType.d.ts +4 -11
- package/dist/types/StringType.js +8 -23
- package/dist/types/StringType.js.map +1 -1
- package/dist/types/StringType.spec.js +2 -2
- package/dist/types/StringType.spec.js.map +1 -1
- package/dist/types/UninitializedType.d.ts +3 -7
- package/dist/types/UninitializedType.js +3 -14
- package/dist/types/UninitializedType.js.map +1 -1
- package/dist/types/VoidType.d.ts +4 -8
- package/dist/types/VoidType.js +8 -18
- package/dist/types/VoidType.js.map +1 -1
- package/dist/types/VoidType.spec.js +2 -2
- package/dist/types/VoidType.spec.js.map +1 -1
- package/dist/util.d.ts +43 -104
- package/dist/util.js +243 -640
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.d.ts +6 -1
- package/dist/validators/ClassValidator.js +61 -20
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +13 -11
- package/dist/ActionPipeline.d.ts +0 -10
- package/dist/ActionPipeline.js +0 -40
- package/dist/ActionPipeline.js.map +0 -1
- package/dist/AstValidationSegmenter.d.ts +0 -25
- package/dist/AstValidationSegmenter.js +0 -150
- package/dist/AstValidationSegmenter.js.map +0 -1
- package/dist/CacheVerifier.d.ts +0 -7
- package/dist/CacheVerifier.js +0 -20
- package/dist/CacheVerifier.js.map +0 -1
- package/dist/astUtils/Editor.js.map +0 -1
- package/dist/astUtils/Editor.spec.js.map +0 -1
- package/dist/bscPlugin/FileWriter.d.ts +0 -6
- package/dist/bscPlugin/FileWriter.js +0 -24
- package/dist/bscPlugin/FileWriter.js.map +0 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +0 -1658
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/fileProviders/FileProvider.d.ts +0 -9
- package/dist/bscPlugin/fileProviders/FileProvider.js +0 -51
- package/dist/bscPlugin/fileProviders/FileProvider.js.map +0 -1
- package/dist/bscPlugin/serialize/BslibInjector.spec.js +0 -19
- package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +0 -1
- package/dist/bscPlugin/serialize/BslibManager.d.ts +0 -9
- package/dist/bscPlugin/serialize/BslibManager.js +0 -40
- package/dist/bscPlugin/serialize/BslibManager.js.map +0 -1
- package/dist/bscPlugin/serialize/FileSerializer.d.ts +0 -9
- package/dist/bscPlugin/serialize/FileSerializer.js +0 -72
- package/dist/bscPlugin/serialize/FileSerializer.js.map +0 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +0 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +0 -41
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +0 -11
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +0 -53
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +0 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +0 -2004
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +0 -1
- package/dist/files/AssetFile.d.ts +0 -26
- package/dist/files/AssetFile.js +0 -26
- package/dist/files/AssetFile.js.map +0 -1
- package/dist/files/Factory.d.ts +0 -25
- package/dist/files/Factory.js +0 -22
- package/dist/files/Factory.js.map +0 -1
- package/dist/files/File.d.ts +0 -106
- package/dist/files/File.js +0 -16
- package/dist/files/File.js.map +0 -1
- package/dist/files/LazyFileData.d.ts +0 -20
- package/dist/files/LazyFileData.js +0 -54
- package/dist/files/LazyFileData.js.map +0 -1
- package/dist/files/LazyFileData.spec.js +0 -27
- package/dist/files/LazyFileData.spec.js.map +0 -1
- package/dist/parser/tests/expression/TypeExpression.spec.js +0 -127
- package/dist/parser/tests/expression/TypeExpression.spec.js.map +0 -1
- package/dist/types/AssociativeArrayType.d.ts +0 -11
- package/dist/types/AssociativeArrayType.js +0 -52
- package/dist/types/AssociativeArrayType.js.map +0 -1
- package/dist/types/BaseFunctionType.d.ts +0 -9
- package/dist/types/BaseFunctionType.js +0 -25
- package/dist/types/BaseFunctionType.js.map +0 -1
- package/dist/types/BscTypeKind.d.ts +0 -25
- package/dist/types/BscTypeKind.js +0 -30
- package/dist/types/BscTypeKind.js.map +0 -1
- package/dist/types/BuiltInInterfaceAdder.d.ts +0 -23
- package/dist/types/BuiltInInterfaceAdder.js +0 -160
- package/dist/types/BuiltInInterfaceAdder.js.map +0 -1
- package/dist/types/BuiltInInterfaceAdder.spec.d.ts +0 -1
- package/dist/types/BuiltInInterfaceAdder.spec.js +0 -116
- package/dist/types/BuiltInInterfaceAdder.spec.js.map +0 -1
- package/dist/types/ClassType.d.ts +0 -17
- package/dist/types/ClassType.js +0 -58
- package/dist/types/ClassType.js.map +0 -1
- package/dist/types/ClassType.spec.d.ts +0 -1
- package/dist/types/ClassType.spec.js +0 -77
- package/dist/types/ClassType.spec.js.map +0 -1
- package/dist/types/ComponentType.d.ts +0 -26
- package/dist/types/ComponentType.js +0 -83
- package/dist/types/ComponentType.js.map +0 -1
- package/dist/types/EnumType.d.ts +0 -40
- package/dist/types/EnumType.js +0 -81
- package/dist/types/EnumType.js.map +0 -1
- package/dist/types/EnumType.spec.d.ts +0 -1
- package/dist/types/EnumType.spec.js +0 -33
- package/dist/types/EnumType.spec.js.map +0 -1
- package/dist/types/InheritableType.d.ts +0 -28
- package/dist/types/InheritableType.js +0 -152
- package/dist/types/InheritableType.js.map +0 -1
- package/dist/types/NamespaceType.d.ts +0 -12
- package/dist/types/NamespaceType.js +0 -28
- package/dist/types/NamespaceType.js.map +0 -1
- package/dist/types/ReferenceType.d.ts +0 -63
- package/dist/types/ReferenceType.js +0 -423
- package/dist/types/ReferenceType.js.map +0 -1
- package/dist/types/ReferenceType.spec.d.ts +0 -1
- package/dist/types/ReferenceType.spec.js +0 -137
- package/dist/types/ReferenceType.spec.js.map +0 -1
- package/dist/types/TypedFunctionType.d.ts +0 -33
- package/dist/types/TypedFunctionType.js +0 -106
- package/dist/types/TypedFunctionType.js.map +0 -1
- package/dist/types/TypedFunctionType.spec.d.ts +0 -1
- package/dist/types/TypedFunctionType.spec.js +0 -122
- package/dist/types/TypedFunctionType.spec.js.map +0 -1
- package/dist/types/UnionType.d.ts +0 -20
- package/dist/types/UnionType.js +0 -123
- package/dist/types/UnionType.js.map +0 -1
- package/dist/types/UnionType.spec.d.ts +0 -1
- package/dist/types/UnionType.spec.js +0 -130
- package/dist/types/UnionType.spec.js.map +0 -1
- package/dist/types/helper.spec.d.ts +0 -1
- package/dist/types/helper.spec.js +0 -145
- package/dist/types/helper.spec.js.map +0 -1
- package/dist/types/helpers.d.ts +0 -24
- package/dist/types/helpers.js +0 -178
- package/dist/types/helpers.js.map +0 -1
- package/dist/types/index.d.ts +0 -22
- package/dist/types/index.js +0 -39
- package/dist/types/index.js.map +0 -1
- /package/dist/astUtils/{Editor.spec.d.ts → AstEditor.spec.d.ts} +0 -0
- /package/dist/bscPlugin/{completions/CompletionsProcessor.spec.d.ts → definition/DefinitionProvider.spec.d.ts} +0 -0
- /package/dist/bscPlugin/{serialize/BslibInjector.spec.d.ts → references/ReferencesProvider.spec.d.ts} +0 -0
- /package/dist/bscPlugin/{transpile/BrsFileTranspileProcessor.spec.d.ts → symbols/DocumentSymbolProcessor.spec.d.ts} +0 -0
- /package/dist/bscPlugin/{validation/ScopeValidator.spec.d.ts → symbols/WorkspaceSymbolProcessor.spec.d.ts} +0 -0
- /package/dist/{files/LazyFileData.spec.d.ts → bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts} +0 -0
- /package/dist/{parser/tests/expression/TypeExpression.spec.d.ts → types/FunctionType.spec.d.ts} +0 -0
|
@@ -15,8 +15,8 @@ describe('SourceLiteralExpression', () => {
|
|
|
15
15
|
program.dispose();
|
|
16
16
|
});
|
|
17
17
|
describe('transpile', () => {
|
|
18
|
-
it('allows bs source literals local vars in brs mode',
|
|
19
|
-
|
|
18
|
+
it('allows bs source literals local vars in brs mode', () => {
|
|
19
|
+
testTranspile(`
|
|
20
20
|
sub main()
|
|
21
21
|
source_file_path = true
|
|
22
22
|
source_line_num = true
|
|
@@ -37,8 +37,8 @@ describe('SourceLiteralExpression', () => {
|
|
|
37
37
|
end sub
|
|
38
38
|
`, undefined, undefined, 'source/main.brs');
|
|
39
39
|
});
|
|
40
|
-
it('computes SOURCE_FILE_PATH',
|
|
41
|
-
|
|
40
|
+
it('computes SOURCE_FILE_PATH', () => {
|
|
41
|
+
testTranspile(`
|
|
42
42
|
sub main()
|
|
43
43
|
print SOURCE_FILE_PATH
|
|
44
44
|
end sub
|
|
@@ -48,8 +48,8 @@ describe('SourceLiteralExpression', () => {
|
|
|
48
48
|
end sub
|
|
49
49
|
`, undefined, 'source/main.bs');
|
|
50
50
|
});
|
|
51
|
-
it('computes SOURCE_LINE_NUM',
|
|
52
|
-
|
|
51
|
+
it('computes SOURCE_LINE_NUM', () => {
|
|
52
|
+
testTranspile(`
|
|
53
53
|
sub main()
|
|
54
54
|
print SOURCE_LINE_NUM
|
|
55
55
|
print "hello world"
|
|
@@ -63,8 +63,8 @@ describe('SourceLiteralExpression', () => {
|
|
|
63
63
|
end sub
|
|
64
64
|
`);
|
|
65
65
|
});
|
|
66
|
-
it('computes FUNCTION_NAME',
|
|
67
|
-
|
|
66
|
+
it('computes FUNCTION_NAME', () => {
|
|
67
|
+
testTranspile(`
|
|
68
68
|
sub main1()
|
|
69
69
|
print FUNCTION_NAME
|
|
70
70
|
end sub
|
|
@@ -82,8 +82,8 @@ describe('SourceLiteralExpression', () => {
|
|
|
82
82
|
end sub
|
|
83
83
|
`);
|
|
84
84
|
});
|
|
85
|
-
it('computes SOURCE_FUNCTION_NAME',
|
|
86
|
-
|
|
85
|
+
it('computes SOURCE_FUNCTION_NAME', () => {
|
|
86
|
+
testTranspile(`
|
|
87
87
|
sub main1()
|
|
88
88
|
print SOURCE_FUNCTION_NAME
|
|
89
89
|
end sub
|
|
@@ -101,8 +101,8 @@ describe('SourceLiteralExpression', () => {
|
|
|
101
101
|
end sub
|
|
102
102
|
`);
|
|
103
103
|
});
|
|
104
|
-
it('SOURCE_FUNCTION_NAME computes nested anon',
|
|
105
|
-
|
|
104
|
+
it('SOURCE_FUNCTION_NAME computes nested anon', () => {
|
|
105
|
+
testTranspile(`
|
|
106
106
|
namespace NameA
|
|
107
107
|
sub main()
|
|
108
108
|
speak = sub()
|
|
@@ -124,8 +124,8 @@ describe('SourceLiteralExpression', () => {
|
|
|
124
124
|
end sub
|
|
125
125
|
`);
|
|
126
126
|
});
|
|
127
|
-
it('computes SOURCE_LOCATION',
|
|
128
|
-
|
|
127
|
+
it('computes SOURCE_LOCATION', () => {
|
|
128
|
+
testTranspile(`
|
|
129
129
|
sub main()
|
|
130
130
|
print SOURCE_LOCATION
|
|
131
131
|
end sub
|
|
@@ -135,8 +135,8 @@ describe('SourceLiteralExpression', () => {
|
|
|
135
135
|
end sub
|
|
136
136
|
`, undefined, 'source/main.bs');
|
|
137
137
|
});
|
|
138
|
-
it('computes PKG_PATH',
|
|
139
|
-
|
|
138
|
+
it('computes PKG_PATH', () => {
|
|
139
|
+
testTranspile(`
|
|
140
140
|
sub main()
|
|
141
141
|
print PKG_PATH
|
|
142
142
|
end sub
|
|
@@ -146,8 +146,8 @@ describe('SourceLiteralExpression', () => {
|
|
|
146
146
|
end sub
|
|
147
147
|
`, undefined, 'source/main.bs');
|
|
148
148
|
});
|
|
149
|
-
it('computes PKG_LOCATION',
|
|
150
|
-
|
|
149
|
+
it('computes PKG_LOCATION', () => {
|
|
150
|
+
testTranspile(`
|
|
151
151
|
sub main()
|
|
152
152
|
print PKG_LOCATION
|
|
153
153
|
end sub
|
|
@@ -157,20 +157,20 @@ describe('SourceLiteralExpression', () => {
|
|
|
157
157
|
end sub
|
|
158
158
|
`, undefined, 'source/main.bs');
|
|
159
159
|
});
|
|
160
|
-
it('retains LINE_NUM',
|
|
161
|
-
|
|
160
|
+
it('retains LINE_NUM', () => {
|
|
161
|
+
testTranspile(`
|
|
162
162
|
sub main()
|
|
163
163
|
print LINE_NUM
|
|
164
164
|
end sub
|
|
165
165
|
`);
|
|
166
166
|
});
|
|
167
|
-
it('accounts for sourceRoot in SOURCE_FILE_PATH',
|
|
167
|
+
it('accounts for sourceRoot in SOURCE_FILE_PATH', () => {
|
|
168
168
|
let sourceRoot = (0, util_1.standardizePath) `${process.cwd()} / sourceRoot`;
|
|
169
169
|
program = new Program_1.Program({
|
|
170
170
|
rootDir: rootDir,
|
|
171
171
|
sourceRoot: sourceRoot
|
|
172
172
|
});
|
|
173
|
-
|
|
173
|
+
testTranspile(`
|
|
174
174
|
sub main()
|
|
175
175
|
print SOURCE_FILE_PATH
|
|
176
176
|
end sub
|
|
@@ -180,13 +180,13 @@ describe('SourceLiteralExpression', () => {
|
|
|
180
180
|
end sub
|
|
181
181
|
`, undefined, 'source/main.bs');
|
|
182
182
|
});
|
|
183
|
-
it('accounts for sourceRoot in SOURCE_LOCATION',
|
|
183
|
+
it('accounts for sourceRoot in SOURCE_LOCATION', () => {
|
|
184
184
|
let sourceRoot = (0, util_1.standardizePath) `${process.cwd()} / sourceRoot`;
|
|
185
185
|
program = new Program_1.Program({
|
|
186
186
|
rootDir: rootDir,
|
|
187
187
|
sourceRoot: sourceRoot
|
|
188
188
|
});
|
|
189
|
-
|
|
189
|
+
testTranspile(`
|
|
190
190
|
sub main()
|
|
191
191
|
print SOURCE_LOCATION
|
|
192
192
|
end sub
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceLiteralExpression.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/expression/SourceLiteralExpression.spec.ts"],"names":[],"mappings":";;AAAA,8CAA2C;AAC3C,wCAAqD;AACrD,oCAAoC;AACpC,gEAA6D;AAE7D,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACrC,IAAI,OAAO,GAAG,IAAA,sBAAC,EAAA,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;IAC1C,IAAI,OAAgB,CAAC;IACrB,IAAI,aAAa,GAAG,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAE/D,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QAEvB,EAAE,CAAC,kDAAkD,EAAE,
|
|
1
|
+
{"version":3,"file":"SourceLiteralExpression.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/expression/SourceLiteralExpression.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-for-in-array */
|
|
3
|
+
/* eslint no-template-curly-in-string: 0 */
|
|
2
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/* eslint-disable no-template-curly-in-string */
|
|
4
5
|
const chai_config_spec_1 = require("../../../chai-config.spec");
|
|
5
6
|
const DiagnosticMessages_1 = require("../../../DiagnosticMessages");
|
|
6
7
|
const Lexer_1 = require("../../../lexer/Lexer");
|
|
@@ -94,9 +95,9 @@ describe('TemplateStringExpression', () => {
|
|
|
94
95
|
afterEach(() => {
|
|
95
96
|
program.dispose();
|
|
96
97
|
});
|
|
97
|
-
it('uses the proper prefix when aliased package is installed',
|
|
98
|
+
it('uses the proper prefix when aliased package is installed', () => {
|
|
98
99
|
program.setFile('source/roku_modules/rokucommunity_bslib/bslib.brs', '');
|
|
99
|
-
|
|
100
|
+
testTranspile(`
|
|
100
101
|
sub main()
|
|
101
102
|
a = \`\${LINE_NUM},\${LINE_NUM}\`
|
|
102
103
|
end sub
|
|
@@ -106,8 +107,8 @@ describe('TemplateStringExpression', () => {
|
|
|
106
107
|
end sub
|
|
107
108
|
`);
|
|
108
109
|
});
|
|
109
|
-
it('properly transpiles simple template string with no leading text',
|
|
110
|
-
|
|
110
|
+
it('properly transpiles simple template string with no leading text', () => {
|
|
111
|
+
testTranspile(`
|
|
111
112
|
sub main()
|
|
112
113
|
a = \`\${LINE_NUM},\${LINE_NUM}\`
|
|
113
114
|
end sub
|
|
@@ -117,8 +118,8 @@ describe('TemplateStringExpression', () => {
|
|
|
117
118
|
end sub
|
|
118
119
|
`);
|
|
119
120
|
});
|
|
120
|
-
it('properly transpiles simple template string',
|
|
121
|
-
|
|
121
|
+
it('properly transpiles simple template string', () => {
|
|
122
|
+
testTranspile(`
|
|
122
123
|
sub main()
|
|
123
124
|
a = \`hello world\`
|
|
124
125
|
end sub
|
|
@@ -128,8 +129,8 @@ describe('TemplateStringExpression', () => {
|
|
|
128
129
|
end sub
|
|
129
130
|
`);
|
|
130
131
|
});
|
|
131
|
-
it('properly transpiles one line template string with expressions',
|
|
132
|
-
|
|
132
|
+
it('properly transpiles one line template string with expressions', () => {
|
|
133
|
+
testTranspile(`
|
|
133
134
|
sub main()
|
|
134
135
|
a = \`hello \${LINE_NUM.text} world \${"template" + "".getChars()} test\`
|
|
135
136
|
end sub
|
|
@@ -139,8 +140,8 @@ describe('TemplateStringExpression', () => {
|
|
|
139
140
|
end sub
|
|
140
141
|
`);
|
|
141
142
|
});
|
|
142
|
-
it('handles escaped characters',
|
|
143
|
-
|
|
143
|
+
it('handles escaped characters', () => {
|
|
144
|
+
testTranspile(`
|
|
144
145
|
sub main()
|
|
145
146
|
a = \`\\r\\n\\\`\\$\`
|
|
146
147
|
end sub
|
|
@@ -150,8 +151,8 @@ describe('TemplateStringExpression', () => {
|
|
|
150
151
|
end sub
|
|
151
152
|
`);
|
|
152
153
|
});
|
|
153
|
-
it('handles escaped unicode char codes',
|
|
154
|
-
|
|
154
|
+
it('handles escaped unicode char codes', () => {
|
|
155
|
+
testTranspile(`
|
|
155
156
|
sub main()
|
|
156
157
|
a = \`\\c2\\c987\`
|
|
157
158
|
end sub
|
|
@@ -161,8 +162,8 @@ describe('TemplateStringExpression', () => {
|
|
|
161
162
|
end sub
|
|
162
163
|
`);
|
|
163
164
|
});
|
|
164
|
-
it('properly transpiles simple multiline template string',
|
|
165
|
-
|
|
165
|
+
it('properly transpiles simple multiline template string', () => {
|
|
166
|
+
testTranspile(`
|
|
166
167
|
sub main()
|
|
167
168
|
a = \`hello world\nI am multiline\`
|
|
168
169
|
end sub
|
|
@@ -172,8 +173,8 @@ describe('TemplateStringExpression', () => {
|
|
|
172
173
|
end sub
|
|
173
174
|
`);
|
|
174
175
|
});
|
|
175
|
-
it('properly handles newlines',
|
|
176
|
-
|
|
176
|
+
it('properly handles newlines', () => {
|
|
177
|
+
testTranspile(`
|
|
177
178
|
sub main()
|
|
178
179
|
a = \`\n\`
|
|
179
180
|
end sub
|
|
@@ -183,8 +184,8 @@ describe('TemplateStringExpression', () => {
|
|
|
183
184
|
end sub
|
|
184
185
|
`);
|
|
185
186
|
});
|
|
186
|
-
it('properly handles clrf',
|
|
187
|
-
|
|
187
|
+
it('properly handles clrf', () => {
|
|
188
|
+
testTranspile(`
|
|
188
189
|
sub main()
|
|
189
190
|
a = \`\r\n\`
|
|
190
191
|
end sub
|
|
@@ -194,8 +195,8 @@ describe('TemplateStringExpression', () => {
|
|
|
194
195
|
end sub
|
|
195
196
|
`);
|
|
196
197
|
});
|
|
197
|
-
it('properly transpiles more complex multiline template string',
|
|
198
|
-
|
|
198
|
+
it('properly transpiles more complex multiline template string', () => {
|
|
199
|
+
testTranspile(`
|
|
199
200
|
sub main()
|
|
200
201
|
a = \`I am multiline\n\${a.isRunning()}\nmore\`
|
|
201
202
|
end sub
|
|
@@ -205,8 +206,8 @@ describe('TemplateStringExpression', () => {
|
|
|
205
206
|
end sub
|
|
206
207
|
`);
|
|
207
208
|
});
|
|
208
|
-
it('properly transpiles complex multiline template string in array def',
|
|
209
|
-
|
|
209
|
+
it('properly transpiles complex multiline template string in array def', () => {
|
|
210
|
+
testTranspile(`
|
|
210
211
|
sub main()
|
|
211
212
|
a = [
|
|
212
213
|
"one",
|
|
@@ -228,8 +229,8 @@ describe('TemplateStringExpression', () => {
|
|
|
228
229
|
end sub
|
|
229
230
|
`);
|
|
230
231
|
});
|
|
231
|
-
it('properly transpiles complex multiline template string in array def, with nested template',
|
|
232
|
-
|
|
232
|
+
it('properly transpiles complex multiline template string in array def, with nested template', () => {
|
|
233
|
+
testTranspile(`
|
|
233
234
|
sub main()
|
|
234
235
|
a = [
|
|
235
236
|
"one",
|
|
@@ -257,8 +258,8 @@ describe('TemplateStringExpression', () => {
|
|
|
257
258
|
end sub
|
|
258
259
|
`);
|
|
259
260
|
});
|
|
260
|
-
it('properly transpiles two
|
|
261
|
-
|
|
261
|
+
it('properly transpiles two expressions side-by-side', () => {
|
|
262
|
+
testTranspile(`
|
|
262
263
|
sub main()
|
|
263
264
|
a = \`\${"hello"}\${"world"}\`
|
|
264
265
|
end sub
|
|
@@ -268,8 +269,8 @@ describe('TemplateStringExpression', () => {
|
|
|
268
269
|
end sub
|
|
269
270
|
`);
|
|
270
271
|
});
|
|
271
|
-
it('skips calling toString on strings',
|
|
272
|
-
|
|
272
|
+
it('skips calling toString on strings', () => {
|
|
273
|
+
testTranspile(`
|
|
273
274
|
sub main()
|
|
274
275
|
text = \`Hello \${"world"}\`
|
|
275
276
|
end sub
|
|
@@ -280,8 +281,8 @@ describe('TemplateStringExpression', () => {
|
|
|
280
281
|
`);
|
|
281
282
|
});
|
|
282
283
|
describe('tagged template strings', () => {
|
|
283
|
-
it('properly transpiles with escaped characters and quasis',
|
|
284
|
-
|
|
284
|
+
it('properly transpiles with escaped characters and quasis', () => {
|
|
285
|
+
testTranspile(`
|
|
285
286
|
function zombify(strings, values)
|
|
286
287
|
end function
|
|
287
288
|
sub main()
|
|
@@ -296,8 +297,8 @@ describe('TemplateStringExpression', () => {
|
|
|
296
297
|
end sub
|
|
297
298
|
`);
|
|
298
299
|
});
|
|
299
|
-
it('handles multiple embedded expressions',
|
|
300
|
-
|
|
300
|
+
it('handles multiple embedded expressions', () => {
|
|
301
|
+
testTranspile(`
|
|
301
302
|
function zombify(strings, values)
|
|
302
303
|
end function
|
|
303
304
|
sub main()
|
|
@@ -312,8 +313,8 @@ describe('TemplateStringExpression', () => {
|
|
|
312
313
|
end sub
|
|
313
314
|
`);
|
|
314
315
|
});
|
|
315
|
-
it('can be concatenated with regular string',
|
|
316
|
-
|
|
316
|
+
it('can be concatenated with regular string', () => {
|
|
317
|
+
testTranspile(`
|
|
317
318
|
sub main()
|
|
318
319
|
thing = "this" + \`that\`
|
|
319
320
|
otherThing = \`that\` + "this"
|
|
@@ -327,5 +328,16 @@ describe('TemplateStringExpression', () => {
|
|
|
327
328
|
});
|
|
328
329
|
});
|
|
329
330
|
});
|
|
331
|
+
it('gets right position for annotation', () => {
|
|
332
|
+
const parser = Parser_1.Parser.parse(`
|
|
333
|
+
@template(\`
|
|
334
|
+
<label id="theLabel" />
|
|
335
|
+
\`)
|
|
336
|
+
function init()
|
|
337
|
+
end function
|
|
338
|
+
`);
|
|
339
|
+
const ann = parser.ast.statements[0].annotations[0];
|
|
340
|
+
(0, chai_config_spec_1.expect)(ann.range).to.eql(util_1.util.createRange(1, 12, 3, 14));
|
|
341
|
+
});
|
|
330
342
|
});
|
|
331
343
|
//# sourceMappingURL=TemplateStringExpression.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateStringExpression.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/expression/TemplateStringExpression.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TemplateStringExpression.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/expression/TemplateStringExpression.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -228,9 +228,9 @@ describe('ternary expressions', () => {
|
|
|
228
228
|
afterEach(() => {
|
|
229
229
|
program.dispose();
|
|
230
230
|
});
|
|
231
|
-
it('uses the proper prefix when aliased package is installed',
|
|
231
|
+
it('uses the proper prefix when aliased package is installed', () => {
|
|
232
232
|
program.setFile('source/roku_modules/rokucommunity_bslib/bslib.brs', '');
|
|
233
|
-
|
|
233
|
+
testTranspile(`
|
|
234
234
|
sub main()
|
|
235
235
|
user = {}
|
|
236
236
|
a = user = invalid ? "no user" : "logged in"
|
|
@@ -242,8 +242,8 @@ describe('ternary expressions', () => {
|
|
|
242
242
|
end sub
|
|
243
243
|
`);
|
|
244
244
|
});
|
|
245
|
-
it('simple consequents',
|
|
246
|
-
|
|
245
|
+
it('simple consequents', () => {
|
|
246
|
+
testTranspile(`
|
|
247
247
|
sub main()
|
|
248
248
|
user = {}
|
|
249
249
|
a = user = invalid ? "no user" : "logged in"
|
|
@@ -254,7 +254,7 @@ describe('ternary expressions', () => {
|
|
|
254
254
|
a = bslib_ternary(user = invalid, "no user", "logged in")
|
|
255
255
|
end sub
|
|
256
256
|
`);
|
|
257
|
-
|
|
257
|
+
testTranspile(`
|
|
258
258
|
sub main()
|
|
259
259
|
user = {}
|
|
260
260
|
a = user = invalid ? 1 : "logged in"
|
|
@@ -265,7 +265,7 @@ describe('ternary expressions', () => {
|
|
|
265
265
|
a = bslib_ternary(user = invalid, 1, "logged in")
|
|
266
266
|
end sub
|
|
267
267
|
`);
|
|
268
|
-
|
|
268
|
+
testTranspile(`
|
|
269
269
|
sub main()
|
|
270
270
|
user = {}
|
|
271
271
|
a = user = invalid ? 1.2 : "logged in"
|
|
@@ -276,7 +276,7 @@ describe('ternary expressions', () => {
|
|
|
276
276
|
a = bslib_ternary(user = invalid, 1.2, "logged in")
|
|
277
277
|
end sub
|
|
278
278
|
`);
|
|
279
|
-
|
|
279
|
+
testTranspile(`
|
|
280
280
|
sub main()
|
|
281
281
|
user = {}
|
|
282
282
|
a = user = invalid ? {} : "logged in"
|
|
@@ -287,7 +287,7 @@ describe('ternary expressions', () => {
|
|
|
287
287
|
a = bslib_ternary(user = invalid, {}, "logged in")
|
|
288
288
|
end sub
|
|
289
289
|
`);
|
|
290
|
-
|
|
290
|
+
testTranspile(`
|
|
291
291
|
sub main()
|
|
292
292
|
user = {}
|
|
293
293
|
a = user = invalid ? [] : "logged in"
|
|
@@ -299,8 +299,8 @@ describe('ternary expressions', () => {
|
|
|
299
299
|
end sub
|
|
300
300
|
`);
|
|
301
301
|
});
|
|
302
|
-
it('simple alternates',
|
|
303
|
-
|
|
302
|
+
it('simple alternates', () => {
|
|
303
|
+
testTranspile(`
|
|
304
304
|
sub main()
|
|
305
305
|
user = {}
|
|
306
306
|
a = user = invalid ? "logged in" : "no user"
|
|
@@ -311,7 +311,7 @@ describe('ternary expressions', () => {
|
|
|
311
311
|
a = bslib_ternary(user = invalid, "logged in", "no user")
|
|
312
312
|
end sub
|
|
313
313
|
`);
|
|
314
|
-
|
|
314
|
+
testTranspile(`
|
|
315
315
|
sub main()
|
|
316
316
|
user = {}
|
|
317
317
|
a = user = invalid ? "logged in" : 1
|
|
@@ -322,7 +322,7 @@ describe('ternary expressions', () => {
|
|
|
322
322
|
a = bslib_ternary(user = invalid, "logged in", 1)
|
|
323
323
|
end sub
|
|
324
324
|
`);
|
|
325
|
-
|
|
325
|
+
testTranspile(`
|
|
326
326
|
sub main()
|
|
327
327
|
user = {}
|
|
328
328
|
a = user = invalid ? "logged in" : 1.2
|
|
@@ -333,7 +333,7 @@ describe('ternary expressions', () => {
|
|
|
333
333
|
a = bslib_ternary(user = invalid, "logged in", 1.2)
|
|
334
334
|
end sub
|
|
335
335
|
`);
|
|
336
|
-
|
|
336
|
+
testTranspile(`
|
|
337
337
|
sub main()
|
|
338
338
|
user = {}
|
|
339
339
|
a = user = invalid ? "logged in" : []
|
|
@@ -344,7 +344,7 @@ describe('ternary expressions', () => {
|
|
|
344
344
|
a = bslib_ternary(user = invalid, "logged in", [])
|
|
345
345
|
end sub
|
|
346
346
|
`);
|
|
347
|
-
|
|
347
|
+
testTranspile(`
|
|
348
348
|
sub main()
|
|
349
349
|
user = {}
|
|
350
350
|
a = user = invalid ? "logged in" : {}
|
|
@@ -356,17 +356,17 @@ describe('ternary expressions', () => {
|
|
|
356
356
|
end sub
|
|
357
357
|
`);
|
|
358
358
|
});
|
|
359
|
-
it('complex conditions do not cause scope capture',
|
|
360
|
-
|
|
359
|
+
it('complex conditions do not cause scope capture', () => {
|
|
360
|
+
testTranspile(`
|
|
361
361
|
sub main()
|
|
362
|
-
a = str(
|
|
362
|
+
a = str("true") = "true" ? true : false
|
|
363
363
|
end sub
|
|
364
364
|
`, `
|
|
365
365
|
sub main()
|
|
366
|
-
a = bslib_ternary(str(
|
|
366
|
+
a = bslib_ternary(str("true") = "true", true, false)
|
|
367
367
|
end sub
|
|
368
368
|
`);
|
|
369
|
-
|
|
369
|
+
testTranspile(`
|
|
370
370
|
sub main()
|
|
371
371
|
a = m.top.service.IsTrue() ? true : false
|
|
372
372
|
end sub
|
|
@@ -375,7 +375,7 @@ describe('ternary expressions', () => {
|
|
|
375
375
|
a = bslib_ternary(m.top.service.IsTrue(), true, false)
|
|
376
376
|
end sub
|
|
377
377
|
`);
|
|
378
|
-
|
|
378
|
+
testTranspile(`
|
|
379
379
|
sub test(param1)
|
|
380
380
|
end sub
|
|
381
381
|
|
|
@@ -391,8 +391,8 @@ describe('ternary expressions', () => {
|
|
|
391
391
|
end sub
|
|
392
392
|
`);
|
|
393
393
|
});
|
|
394
|
-
it('captures scope for function call conseqent',
|
|
395
|
-
|
|
394
|
+
it('captures scope for function call conseqent', () => {
|
|
395
|
+
testTranspile(`
|
|
396
396
|
sub main()
|
|
397
397
|
zombie = {}
|
|
398
398
|
name = zombie.getName() <> invalid ? zombie.GetName() : "zombie"
|
|
@@ -410,8 +410,8 @@ describe('ternary expressions', () => {
|
|
|
410
410
|
end sub
|
|
411
411
|
`);
|
|
412
412
|
});
|
|
413
|
-
it('captures scope for function call alternate',
|
|
414
|
-
|
|
413
|
+
it('captures scope for function call alternate', () => {
|
|
414
|
+
testTranspile(`
|
|
415
415
|
sub main()
|
|
416
416
|
zombie = {}
|
|
417
417
|
name = zombie.getName() = invalid ? "zombie" : zombie.GetName()
|
|
@@ -429,8 +429,8 @@ describe('ternary expressions', () => {
|
|
|
429
429
|
end sub
|
|
430
430
|
`);
|
|
431
431
|
});
|
|
432
|
-
it('captures scope for complex consequent',
|
|
433
|
-
|
|
432
|
+
it('captures scope for complex consequent', () => {
|
|
433
|
+
testTranspile(`
|
|
434
434
|
sub main()
|
|
435
435
|
settings = {}
|
|
436
436
|
name = {} ? m.defaults.getAccount(settings.name) : "no"
|
|
@@ -448,8 +448,55 @@ describe('ternary expressions', () => {
|
|
|
448
448
|
end sub
|
|
449
449
|
`);
|
|
450
450
|
});
|
|
451
|
-
it('
|
|
452
|
-
|
|
451
|
+
it('ignores enum variable names', () => {
|
|
452
|
+
testTranspile(`
|
|
453
|
+
enum Direction
|
|
454
|
+
up = "up"
|
|
455
|
+
down = "down"
|
|
456
|
+
end enum
|
|
457
|
+
sub main()
|
|
458
|
+
d = Direction.up
|
|
459
|
+
theDir = d = Direction.up ? Direction.up : false
|
|
460
|
+
end sub
|
|
461
|
+
`, `
|
|
462
|
+
sub main()
|
|
463
|
+
d = "up"
|
|
464
|
+
theDir = (function(__bsCondition)
|
|
465
|
+
if __bsCondition then
|
|
466
|
+
return "up"
|
|
467
|
+
else
|
|
468
|
+
return false
|
|
469
|
+
end if
|
|
470
|
+
end function)(d = "up")
|
|
471
|
+
end sub
|
|
472
|
+
`);
|
|
473
|
+
});
|
|
474
|
+
it('ignores const variable names', () => {
|
|
475
|
+
testTranspile(`
|
|
476
|
+
enum Direction
|
|
477
|
+
up = "up"
|
|
478
|
+
down = "down"
|
|
479
|
+
end enum
|
|
480
|
+
const UP = "up"
|
|
481
|
+
sub main()
|
|
482
|
+
d = Direction.up
|
|
483
|
+
theDir = d = Direction.up ? UP : Direction.down
|
|
484
|
+
end sub
|
|
485
|
+
`, `
|
|
486
|
+
sub main()
|
|
487
|
+
d = "up"
|
|
488
|
+
theDir = (function(__bsCondition)
|
|
489
|
+
if __bsCondition then
|
|
490
|
+
return "up"
|
|
491
|
+
else
|
|
492
|
+
return "down"
|
|
493
|
+
end if
|
|
494
|
+
end function)(d = "up")
|
|
495
|
+
end sub
|
|
496
|
+
`);
|
|
497
|
+
});
|
|
498
|
+
it('supports scope-captured outer, and simple inner', () => {
|
|
499
|
+
testTranspile(`
|
|
453
500
|
sub main()
|
|
454
501
|
zombie = {}
|
|
455
502
|
human = {}
|
|
@@ -469,8 +516,8 @@ describe('ternary expressions', () => {
|
|
|
469
516
|
end sub
|
|
470
517
|
`);
|
|
471
518
|
});
|
|
472
|
-
it('uses scope capture for property access',
|
|
473
|
-
|
|
519
|
+
it('uses scope capture for property access', () => {
|
|
520
|
+
testTranspile(`
|
|
474
521
|
sub main()
|
|
475
522
|
person = {}
|
|
476
523
|
name = person <> invalid ? person.name : "John Doe"
|
|
@@ -488,14 +535,14 @@ describe('ternary expressions', () => {
|
|
|
488
535
|
end sub
|
|
489
536
|
`);
|
|
490
537
|
});
|
|
491
|
-
it('uses `invalid` in place of missing consequent ',
|
|
492
|
-
|
|
538
|
+
it('uses `invalid` in place of missing consequent ', () => {
|
|
539
|
+
testTranspile(`print name = "bob" ? :"zombie"`, `print bslib_ternary(name = "bob", invalid, "zombie")`, 'none', undefined, false);
|
|
493
540
|
});
|
|
494
|
-
it('uses `invalid` in place of missing alternate ',
|
|
495
|
-
|
|
541
|
+
it('uses `invalid` in place of missing alternate ', () => {
|
|
542
|
+
testTranspile(`print name = "bob" ? "human"`, `print bslib_ternary(name = "bob", "human", invalid)`, 'none', undefined, false);
|
|
496
543
|
});
|
|
497
|
-
it('uses `invalid` in place of missing alternate and consequent ',
|
|
498
|
-
|
|
544
|
+
it('uses `invalid` in place of missing alternate and consequent ', () => {
|
|
545
|
+
testTranspile(`print name = "bob" ?:`, `print bslib_ternary(name = "bob", invalid, invalid)`, 'none', undefined, false);
|
|
499
546
|
});
|
|
500
547
|
});
|
|
501
548
|
});
|