typescript-to-lua 1.0.1 → 1.1.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 +18 -0
- package/dist/CompilerOptions.d.ts +4 -3
- package/dist/LuaAST.js +4 -4
- package/dist/LuaLib.d.ts +1 -0
- package/dist/LuaLib.js +1 -0
- package/dist/LuaPrinter.d.ts +6 -2
- package/dist/LuaPrinter.js +25 -16
- package/dist/cli/diagnostics.js +2 -2
- package/dist/cli/report.js +1 -1
- package/dist/cli/tsconfig.js +4 -4
- package/dist/lualib/Await.lua +26 -10
- package/dist/lualib/Promise.lua +20 -6
- package/dist/lualib/SourceMapTraceBack.lua +18 -8
- package/dist/lualib/StringReplace.lua +8 -13
- package/dist/lualib/StringReplaceAll.lua +35 -0
- package/dist/lualib/lualib_bundle.lua +106 -35
- package/dist/transformation/builtins/array.js +29 -29
- package/dist/transformation/builtins/console.js +2 -2
- package/dist/transformation/builtins/function.js +9 -9
- package/dist/transformation/builtins/global.js +8 -8
- package/dist/transformation/builtins/index.js +33 -33
- package/dist/transformation/builtins/math.js +4 -4
- package/dist/transformation/builtins/number.js +7 -7
- package/dist/transformation/builtins/object.js +11 -11
- package/dist/transformation/builtins/promise.js +9 -9
- package/dist/transformation/builtins/string.js +32 -30
- package/dist/transformation/builtins/symbol.js +3 -3
- package/dist/transformation/context/context.js +5 -5
- package/dist/transformation/index.js +1 -1
- package/dist/transformation/utils/annotations.d.ts +1 -3
- package/dist/transformation/utils/annotations.js +0 -2
- package/dist/transformation/utils/assignment-validation.js +8 -7
- package/dist/transformation/utils/diagnostics.js +4 -4
- package/dist/transformation/utils/export.js +4 -4
- package/dist/transformation/utils/function-context.js +8 -8
- package/dist/transformation/utils/lua-ast.js +18 -19
- package/dist/transformation/utils/lualib.js +1 -1
- package/dist/transformation/utils/safe-names.js +5 -5
- package/dist/transformation/utils/scope.d.ts +6 -0
- package/dist/transformation/utils/scope.js +70 -40
- package/dist/transformation/utils/symbols.js +6 -6
- package/dist/transformation/utils/transform.js +3 -3
- package/dist/transformation/utils/typescript/nodes.d.ts +2 -0
- package/dist/transformation/utils/typescript/nodes.js +21 -1
- package/dist/transformation/visitors/access.js +16 -16
- package/dist/transformation/visitors/async-await.js +5 -4
- package/dist/transformation/visitors/binary-expression/assignments.js +29 -29
- package/dist/transformation/visitors/binary-expression/bit.js +4 -4
- package/dist/transformation/visitors/binary-expression/compound.js +18 -18
- package/dist/transformation/visitors/binary-expression/destructuring-assignments.js +17 -17
- package/dist/transformation/visitors/binary-expression/index.js +21 -21
- package/dist/transformation/visitors/block.js +6 -6
- package/dist/transformation/visitors/break-continue.js +2 -2
- package/dist/transformation/visitors/call.js +35 -35
- package/dist/transformation/visitors/class/decorators.js +3 -3
- package/dist/transformation/visitors/class/index.js +34 -34
- package/dist/transformation/visitors/class/members/accessors.js +6 -6
- package/dist/transformation/visitors/class/members/constructor.js +7 -7
- package/dist/transformation/visitors/class/members/fields.js +6 -6
- package/dist/transformation/visitors/class/members/method.js +6 -6
- package/dist/transformation/visitors/class/new.js +12 -12
- package/dist/transformation/visitors/class/setup.js +11 -11
- package/dist/transformation/visitors/class/utils.js +2 -2
- package/dist/transformation/visitors/conditional.js +6 -6
- package/dist/transformation/visitors/delete.js +4 -4
- package/dist/transformation/visitors/enum.js +8 -8
- package/dist/transformation/visitors/errors.js +30 -30
- package/dist/transformation/visitors/expression-statement.js +10 -6
- package/dist/transformation/visitors/function.js +26 -26
- package/dist/transformation/visitors/identifier.js +22 -22
- package/dist/transformation/visitors/index.js +2 -2
- package/dist/transformation/visitors/language-extensions/iterable.js +7 -7
- package/dist/transformation/visitors/language-extensions/multi.d.ts +1 -1
- package/dist/transformation/visitors/language-extensions/multi.js +3 -3
- package/dist/transformation/visitors/language-extensions/operators.js +6 -6
- package/dist/transformation/visitors/language-extensions/range.js +6 -6
- package/dist/transformation/visitors/language-extensions/table.js +5 -5
- package/dist/transformation/visitors/literal.d.ts +1 -2
- package/dist/transformation/visitors/literal.js +19 -42
- package/dist/transformation/visitors/loops/do-while.js +2 -2
- package/dist/transformation/visitors/loops/for-in.js +4 -4
- package/dist/transformation/visitors/loops/for-of.js +13 -13
- package/dist/transformation/visitors/loops/for.js +3 -3
- package/dist/transformation/visitors/loops/utils.js +9 -9
- package/dist/transformation/visitors/modules/export.js +13 -13
- package/dist/transformation/visitors/modules/import.js +10 -10
- package/dist/transformation/visitors/namespace.js +13 -13
- package/dist/transformation/visitors/return.d.ts +1 -0
- package/dist/transformation/visitors/return.js +40 -26
- package/dist/transformation/visitors/sourceFile.js +8 -8
- package/dist/transformation/visitors/spread.js +11 -11
- package/dist/transformation/visitors/switch.js +34 -11
- package/dist/transformation/visitors/template.js +5 -5
- package/dist/transformation/visitors/typeof.js +2 -2
- package/dist/transformation/visitors/typescript.js +1 -1
- package/dist/transformation/visitors/unary-expression.js +9 -9
- package/dist/transformation/visitors/variable-declaration.js +28 -28
- package/dist/transformation/visitors/void.d.ts +6 -0
- package/dist/transformation/visitors/void.js +23 -0
- package/dist/transpilation/bundle.d.ts +3 -0
- package/dist/transpilation/bundle.js +52 -10
- package/dist/transpilation/diagnostics.js +3 -3
- package/dist/transpilation/index.js +2 -2
- package/dist/transpilation/output-collector.js +2 -2
- package/dist/transpilation/plugins.js +1 -1
- package/dist/transpilation/resolve.js +19 -12
- package/dist/transpilation/transformers.js +41 -24
- package/dist/transpilation/transpile.js +6 -6
- package/dist/transpilation/transpiler.js +8 -8
- package/dist/transpilation/utils.js +3 -2
- package/dist/tstl.js +8 -8
- package/dist/utils.js +2 -2
- package/package.json +15 -12
- package/dist/transformation/visitors/jsx/jsx.d.ts +0 -9
- package/dist/transformation/visitors/jsx/jsx.js +0 -237
- package/dist/transformation/visitors/jsx/xhtml.d.ts +0 -3
- package/dist/transformation/visitors/jsx/xhtml.js +0 -260
|
@@ -21,8 +21,8 @@ const setup_1 = require("./setup");
|
|
|
21
21
|
const utils_2 = require("./utils");
|
|
22
22
|
const transformClassDeclaration = (declaration, context) => {
|
|
23
23
|
// If declaration is a default export, transform to export variable assignment instead
|
|
24
|
-
if (export_1.hasDefaultExportModifier(declaration)) {
|
|
25
|
-
const left = export_1.createExportedIdentifier(context, export_1.createDefaultExportIdentifier(declaration));
|
|
24
|
+
if ((0, export_1.hasDefaultExportModifier)(declaration)) {
|
|
25
|
+
const left = (0, export_1.createExportedIdentifier)(context, (0, export_1.createDefaultExportIdentifier)(declaration));
|
|
26
26
|
const right = transformClassAsExpression(declaration, context);
|
|
27
27
|
return [lua.createAssignmentStatement(left, right, declaration)];
|
|
28
28
|
}
|
|
@@ -30,12 +30,12 @@ const transformClassDeclaration = (declaration, context) => {
|
|
|
30
30
|
return statements;
|
|
31
31
|
};
|
|
32
32
|
exports.transformClassDeclaration = transformClassDeclaration;
|
|
33
|
-
const transformThisExpression = node => lua_ast_1.createSelfIdentifier(node);
|
|
33
|
+
const transformThisExpression = node => (0, lua_ast_1.createSelfIdentifier)(node);
|
|
34
34
|
exports.transformThisExpression = transformThisExpression;
|
|
35
35
|
function transformClassAsExpression(expression, context) {
|
|
36
|
-
return transform_1.transformToImmediatelyInvokedFunctionExpression(context, () => {
|
|
36
|
+
return (0, transform_1.transformToImmediatelyInvokedFunctionExpression)(context, () => {
|
|
37
37
|
const { statements, name } = transformClassLikeDeclaration(expression, context);
|
|
38
|
-
return { statements: lua_ast_1.unwrapVisitorResult(statements), result: name };
|
|
38
|
+
return { statements: (0, lua_ast_1.unwrapVisitorResult)(statements), result: name };
|
|
39
39
|
}, expression);
|
|
40
40
|
}
|
|
41
41
|
exports.transformClassAsExpression = transformClassAsExpression;
|
|
@@ -46,52 +46,52 @@ function transformClassLikeDeclaration(classDeclaration, context, nameOverride)
|
|
|
46
46
|
className = nameOverride;
|
|
47
47
|
}
|
|
48
48
|
else if (classDeclaration.name !== undefined) {
|
|
49
|
-
className = identifier_1.transformIdentifier(context, classDeclaration.name);
|
|
49
|
+
className = (0, identifier_1.transformIdentifier)(context, classDeclaration.name);
|
|
50
50
|
}
|
|
51
51
|
else {
|
|
52
52
|
// TypeScript error
|
|
53
53
|
className = lua.createAnonymousIdentifier();
|
|
54
54
|
}
|
|
55
|
-
const annotations = annotations_1.getTypeAnnotations(context.checker.getTypeAtLocation(classDeclaration));
|
|
55
|
+
const annotations = (0, annotations_1.getTypeAnnotations)(context.checker.getTypeAtLocation(classDeclaration));
|
|
56
56
|
if (annotations.has(annotations_1.AnnotationKind.Extension)) {
|
|
57
|
-
context.diagnostics.push(diagnostics_1.annotationRemoved(classDeclaration, annotations_1.AnnotationKind.Extension));
|
|
57
|
+
context.diagnostics.push((0, diagnostics_1.annotationRemoved)(classDeclaration, annotations_1.AnnotationKind.Extension));
|
|
58
58
|
}
|
|
59
59
|
if (annotations.has(annotations_1.AnnotationKind.MetaExtension)) {
|
|
60
|
-
context.diagnostics.push(diagnostics_1.annotationRemoved(classDeclaration, annotations_1.AnnotationKind.MetaExtension));
|
|
60
|
+
context.diagnostics.push((0, diagnostics_1.annotationRemoved)(classDeclaration, annotations_1.AnnotationKind.MetaExtension));
|
|
61
61
|
}
|
|
62
62
|
// Get type that is extended
|
|
63
|
-
const extendedTypeNode = utils_2.getExtendedNode(context, classDeclaration);
|
|
64
|
-
const extendedType = utils_2.getExtendedType(context, classDeclaration);
|
|
65
|
-
const superInfo = utils_1.getOrUpdate(classSuperInfos, context, () => []);
|
|
63
|
+
const extendedTypeNode = (0, utils_2.getExtendedNode)(context, classDeclaration);
|
|
64
|
+
const extendedType = (0, utils_2.getExtendedType)(context, classDeclaration);
|
|
65
|
+
const superInfo = (0, utils_1.getOrUpdate)(classSuperInfos, context, () => []);
|
|
66
66
|
superInfo.push({ className, extendedTypeNode });
|
|
67
67
|
if (extendedType) {
|
|
68
|
-
new_1.checkForLuaLibType(context, extendedType);
|
|
68
|
+
(0, new_1.checkForLuaLibType)(context, extendedType);
|
|
69
69
|
}
|
|
70
70
|
// Get all properties with value
|
|
71
71
|
const properties = classDeclaration.members.filter(ts.isPropertyDeclaration).filter(member => member.initializer);
|
|
72
72
|
// Divide properties into static and non-static
|
|
73
|
-
const instanceFields = properties.filter(prop => !utils_2.isStaticNode(prop));
|
|
73
|
+
const instanceFields = properties.filter(prop => !(0, utils_2.isStaticNode)(prop));
|
|
74
74
|
const result = [];
|
|
75
75
|
let localClassName;
|
|
76
|
-
if (safe_names_1.isUnsafeName(className.text)) {
|
|
77
|
-
localClassName = lua.createIdentifier(safe_names_1.createSafeName(className.text), undefined, className.symbolId, className.text);
|
|
76
|
+
if ((0, safe_names_1.isUnsafeName)(className.text)) {
|
|
77
|
+
localClassName = lua.createIdentifier((0, safe_names_1.createSafeName)(className.text), undefined, className.symbolId, className.text);
|
|
78
78
|
lua.setNodePosition(localClassName, className);
|
|
79
79
|
}
|
|
80
80
|
else {
|
|
81
81
|
localClassName = className;
|
|
82
82
|
}
|
|
83
|
-
result.push(...setup_1.createClassSetup(context, classDeclaration, className, localClassName, extendedType));
|
|
83
|
+
result.push(...(0, setup_1.createClassSetup)(context, classDeclaration, className, localClassName, extendedType));
|
|
84
84
|
// Find first constructor with body
|
|
85
85
|
const constructor = classDeclaration.members.find((n) => ts.isConstructorDeclaration(n) && n.body !== undefined);
|
|
86
86
|
if (constructor) {
|
|
87
87
|
// Add constructor plus initialization of instance fields
|
|
88
|
-
const constructorResult = constructor_1.transformConstructorDeclaration(context, constructor, localClassName, instanceFields, classDeclaration);
|
|
88
|
+
const constructorResult = (0, constructor_1.transformConstructorDeclaration)(context, constructor, localClassName, instanceFields, classDeclaration);
|
|
89
89
|
if (constructorResult)
|
|
90
90
|
result.push(constructorResult);
|
|
91
91
|
}
|
|
92
92
|
else if (!extendedType) {
|
|
93
93
|
// Generate a constructor if none was defined in a base class
|
|
94
|
-
const constructorResult = constructor_1.transformConstructorDeclaration(context, ts.factory.createConstructorDeclaration([], [], [], ts.factory.createBlock([], true)), localClassName, instanceFields, classDeclaration);
|
|
94
|
+
const constructorResult = (0, constructor_1.transformConstructorDeclaration)(context, ts.factory.createConstructorDeclaration([], [], [], ts.factory.createBlock([], true)), localClassName, instanceFields, classDeclaration);
|
|
95
95
|
if (constructorResult)
|
|
96
96
|
result.push(constructorResult);
|
|
97
97
|
}
|
|
@@ -100,11 +100,11 @@ function transformClassLikeDeclaration(classDeclaration, context, nameOverride)
|
|
|
100
100
|
// localClassName.prototype.____constructor = function(self, ...)
|
|
101
101
|
// baseClassName.prototype.____constructor(self, ...)
|
|
102
102
|
// ...
|
|
103
|
-
const constructorBody = fields_1.transformClassInstanceFields(context, instanceFields);
|
|
104
|
-
const superCall = lua.createExpressionStatement(lua.createCallExpression(lua.createTableIndexExpression(context.transformExpression(ts.factory.createSuper()), lua.createStringLiteral("____constructor")), [lua_ast_1.createSelfIdentifier(), lua.createDotsLiteral()]));
|
|
103
|
+
const constructorBody = (0, fields_1.transformClassInstanceFields)(context, instanceFields);
|
|
104
|
+
const superCall = lua.createExpressionStatement(lua.createCallExpression(lua.createTableIndexExpression(context.transformExpression(ts.factory.createSuper()), lua.createStringLiteral("____constructor")), [(0, lua_ast_1.createSelfIdentifier)(), lua.createDotsLiteral()]));
|
|
105
105
|
constructorBody.unshift(superCall);
|
|
106
|
-
const constructorFunction = lua.createFunctionExpression(lua.createBlock(constructorBody), [lua_ast_1.createSelfIdentifier()], lua.createDotsLiteral(), lua.FunctionExpressionFlags.Declaration);
|
|
107
|
-
result.push(lua.createAssignmentStatement(constructor_1.createConstructorName(localClassName), constructorFunction, classDeclaration));
|
|
106
|
+
const constructorFunction = lua.createFunctionExpression(lua.createBlock(constructorBody), [(0, lua_ast_1.createSelfIdentifier)()], lua.createDotsLiteral(), lua.FunctionExpressionFlags.Declaration);
|
|
107
|
+
result.push(lua.createAssignmentStatement((0, constructor_1.createConstructorName)(localClassName), constructorFunction, classDeclaration));
|
|
108
108
|
}
|
|
109
109
|
// Transform accessors
|
|
110
110
|
for (const member of classDeclaration.members) {
|
|
@@ -113,7 +113,7 @@ function transformClassLikeDeclaration(classDeclaration, context, nameOverride)
|
|
|
113
113
|
const accessors = context.resolver.getAllAccessorDeclarations(member);
|
|
114
114
|
if (accessors.firstAccessor !== member)
|
|
115
115
|
continue;
|
|
116
|
-
const accessorsResult = accessors_1.transformAccessorDeclarations(context, accessors, localClassName);
|
|
116
|
+
const accessorsResult = (0, accessors_1.transformAccessorDeclarations)(context, accessors, localClassName);
|
|
117
117
|
if (accessorsResult) {
|
|
118
118
|
result.push(accessorsResult);
|
|
119
119
|
}
|
|
@@ -121,27 +121,27 @@ function transformClassLikeDeclaration(classDeclaration, context, nameOverride)
|
|
|
121
121
|
const decorationStatements = [];
|
|
122
122
|
for (const member of classDeclaration.members) {
|
|
123
123
|
if (ts.isAccessor(member)) {
|
|
124
|
-
const expression = fields_1.createPropertyDecoratingExpression(context, member, localClassName);
|
|
124
|
+
const expression = (0, fields_1.createPropertyDecoratingExpression)(context, member, localClassName);
|
|
125
125
|
if (expression)
|
|
126
126
|
decorationStatements.push(lua.createExpressionStatement(expression));
|
|
127
127
|
}
|
|
128
128
|
else if (ts.isMethodDeclaration(member)) {
|
|
129
|
-
const statement = method_1.transformMethodDeclaration(context, member, localClassName);
|
|
129
|
+
const statement = (0, method_1.transformMethodDeclaration)(context, member, localClassName);
|
|
130
130
|
if (statement)
|
|
131
131
|
result.push(statement);
|
|
132
132
|
if (member.body) {
|
|
133
|
-
const statement = method_1.createMethodDecoratingExpression(context, member, localClassName);
|
|
133
|
+
const statement = (0, method_1.createMethodDecoratingExpression)(context, member, localClassName);
|
|
134
134
|
if (statement)
|
|
135
135
|
decorationStatements.push(statement);
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
else if (ts.isPropertyDeclaration(member)) {
|
|
139
|
-
if (utils_2.isStaticNode(member)) {
|
|
140
|
-
const statement = fields_1.transformStaticPropertyDeclaration(context, member, localClassName);
|
|
139
|
+
if ((0, utils_2.isStaticNode)(member)) {
|
|
140
|
+
const statement = (0, fields_1.transformStaticPropertyDeclaration)(context, member, localClassName);
|
|
141
141
|
if (statement)
|
|
142
142
|
decorationStatements.push(statement);
|
|
143
143
|
}
|
|
144
|
-
const expression = fields_1.createPropertyDecoratingExpression(context, member, localClassName);
|
|
144
|
+
const expression = (0, fields_1.createPropertyDecoratingExpression)(context, member, localClassName);
|
|
145
145
|
if (expression)
|
|
146
146
|
decorationStatements.push(lua.createExpressionStatement(expression));
|
|
147
147
|
}
|
|
@@ -149,7 +149,7 @@ function transformClassLikeDeclaration(classDeclaration, context, nameOverride)
|
|
|
149
149
|
result.push(...decorationStatements);
|
|
150
150
|
// Decorate the class
|
|
151
151
|
if (classDeclaration.decorators) {
|
|
152
|
-
const decoratingExpression = decorators_1.createDecoratingExpression(context, classDeclaration.kind, classDeclaration.decorators.map(d => decorators_1.transformDecoratorExpression(context, d)), localClassName);
|
|
152
|
+
const decoratingExpression = (0, decorators_1.createDecoratingExpression)(context, classDeclaration.kind, classDeclaration.decorators.map(d => (0, decorators_1.transformDecoratorExpression)(context, d)), localClassName);
|
|
153
153
|
const decoratingStatement = lua.createAssignmentStatement(localClassName, decoratingExpression);
|
|
154
154
|
result.push(decoratingStatement);
|
|
155
155
|
}
|
|
@@ -157,7 +157,7 @@ function transformClassLikeDeclaration(classDeclaration, context, nameOverride)
|
|
|
157
157
|
return { statements: result, name: className };
|
|
158
158
|
}
|
|
159
159
|
const transformSuperExpression = (expression, context) => {
|
|
160
|
-
const superInfos = utils_1.getOrUpdate(classSuperInfos, context, () => []);
|
|
160
|
+
const superInfos = (0, utils_1.getOrUpdate)(classSuperInfos, context, () => []);
|
|
161
161
|
const superInfo = superInfos[superInfos.length - 1];
|
|
162
162
|
if (!superInfo)
|
|
163
163
|
return lua.createAnonymousIdentifier(expression);
|
|
@@ -167,9 +167,9 @@ const transformSuperExpression = (expression, context) => {
|
|
|
167
167
|
let baseClassName;
|
|
168
168
|
if (extendsExpression && ts.isIdentifier(extendsExpression)) {
|
|
169
169
|
const symbol = context.checker.getSymbolAtLocation(extendsExpression);
|
|
170
|
-
if (symbol && !export_1.isSymbolExported(context, symbol)) {
|
|
170
|
+
if (symbol && !(0, export_1.isSymbolExported)(context, symbol)) {
|
|
171
171
|
// Use "baseClassName" if base is a simple identifier
|
|
172
|
-
baseClassName = identifier_1.transformIdentifier(context, extendsExpression);
|
|
172
|
+
baseClassName = (0, identifier_1.transformIdentifier)(context, extendsExpression);
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
if (!baseClassName) {
|
|
@@ -9,12 +9,12 @@ const literal_1 = require("../../literal");
|
|
|
9
9
|
const utils_1 = require("../utils");
|
|
10
10
|
const constructor_1 = require("./constructor");
|
|
11
11
|
function transformAccessor(context, node) {
|
|
12
|
-
const [params, dot, restParam] = function_1.transformParameters(context, node.parameters, lua_ast_1.createSelfIdentifier());
|
|
13
|
-
const body = node.body ? function_1.transformFunctionBody(context, node.parameters, node.body, restParam)[0] : [];
|
|
12
|
+
const [params, dot, restParam] = (0, function_1.transformParameters)(context, node.parameters, (0, lua_ast_1.createSelfIdentifier)());
|
|
13
|
+
const body = node.body ? (0, function_1.transformFunctionBody)(context, node.parameters, node.body, restParam)[0] : [];
|
|
14
14
|
return lua.createFunctionExpression(lua.createBlock(body), params, dot, lua.FunctionExpressionFlags.Declaration);
|
|
15
15
|
}
|
|
16
16
|
function transformAccessorDeclarations(context, { firstAccessor, getAccessor, setAccessor }, className) {
|
|
17
|
-
const propertyName = literal_1.transformPropertyName(context, firstAccessor.name);
|
|
17
|
+
const propertyName = (0, literal_1.transformPropertyName)(context, firstAccessor.name);
|
|
18
18
|
const descriptor = lua.createTableExpression([]);
|
|
19
19
|
if (getAccessor) {
|
|
20
20
|
const getterFunction = transformAccessor(context, getAccessor);
|
|
@@ -24,13 +24,13 @@ function transformAccessorDeclarations(context, { firstAccessor, getAccessor, se
|
|
|
24
24
|
const setterFunction = transformAccessor(context, setAccessor);
|
|
25
25
|
descriptor.fields.push(lua.createTableFieldExpression(setterFunction, lua.createStringLiteral("set")));
|
|
26
26
|
}
|
|
27
|
-
const isStatic = utils_1.isStaticNode(firstAccessor);
|
|
28
|
-
const target = isStatic ? lua.cloneIdentifier(className) : constructor_1.createPrototypeName(className);
|
|
27
|
+
const isStatic = (0, utils_1.isStaticNode)(firstAccessor);
|
|
28
|
+
const target = isStatic ? lua.cloneIdentifier(className) : (0, constructor_1.createPrototypeName)(className);
|
|
29
29
|
const feature = isStatic ? lualib_1.LuaLibFeature.ObjectDefineProperty : lualib_1.LuaLibFeature.SetDescriptor;
|
|
30
30
|
const parameters = [target, propertyName, descriptor];
|
|
31
31
|
if (!isStatic)
|
|
32
32
|
parameters.push(lua.createBooleanLiteral(true));
|
|
33
|
-
const call = lualib_1.transformLuaLibFunction(context, feature, undefined, ...parameters);
|
|
33
|
+
const call = (0, lualib_1.transformLuaLibFunction)(context, feature, undefined, ...parameters);
|
|
34
34
|
return lua.createExpressionStatement(call);
|
|
35
35
|
}
|
|
36
36
|
exports.transformAccessorDeclarations = transformAccessorDeclarations;
|
|
@@ -22,14 +22,14 @@ function transformConstructorDeclaration(context, statement, className, instance
|
|
|
22
22
|
return undefined;
|
|
23
23
|
}
|
|
24
24
|
// Transform body
|
|
25
|
-
const scope = scope_1.pushScope(context, scope_1.ScopeType.Function);
|
|
26
|
-
const body = function_1.transformFunctionBodyContent(context, statement.body);
|
|
27
|
-
const [params, dotsLiteral, restParamName] = function_1.transformParameters(context, statement.parameters, lua_ast_1.createSelfIdentifier());
|
|
25
|
+
const scope = (0, scope_1.pushScope)(context, scope_1.ScopeType.Function);
|
|
26
|
+
const body = (0, function_1.transformFunctionBodyContent)(context, statement.body);
|
|
27
|
+
const [params, dotsLiteral, restParamName] = (0, function_1.transformParameters)(context, statement.parameters, (0, lua_ast_1.createSelfIdentifier)());
|
|
28
28
|
// Make sure default parameters are assigned before fields are initialized
|
|
29
|
-
const bodyWithFieldInitializers = function_1.transformFunctionBodyHeader(context, scope, statement.parameters, restParamName);
|
|
29
|
+
const bodyWithFieldInitializers = (0, function_1.transformFunctionBodyHeader)(context, scope, statement.parameters, restParamName);
|
|
30
30
|
// Check for field declarations in constructor
|
|
31
31
|
const constructorFieldsDeclarations = statement.parameters.filter(p => p.modifiers !== undefined);
|
|
32
|
-
const classInstanceFields = fields_1.transformClassInstanceFields(context, instanceFields);
|
|
32
|
+
const classInstanceFields = (0, fields_1.transformClassInstanceFields)(context, instanceFields);
|
|
33
33
|
// If there are field initializers and the first statement is a super call,
|
|
34
34
|
// move super call between default assignments and initializers
|
|
35
35
|
if ((constructorFieldsDeclarations.length > 0 || classInstanceFields.length > 0) &&
|
|
@@ -49,7 +49,7 @@ function transformConstructorDeclaration(context, statement, className, instance
|
|
|
49
49
|
for (const declaration of constructorFieldsDeclarations) {
|
|
50
50
|
if (ts.isIdentifier(declaration.name)) {
|
|
51
51
|
// self.declarationName = declarationName
|
|
52
|
-
const assignment = lua.createAssignmentStatement(lua.createTableIndexExpression(lua_ast_1.createSelfIdentifier(), lua.createStringLiteral(declaration.name.text)), identifier_1.transformIdentifier(context, declaration.name));
|
|
52
|
+
const assignment = lua.createAssignmentStatement(lua.createTableIndexExpression((0, lua_ast_1.createSelfIdentifier)(), lua.createStringLiteral(declaration.name.text)), (0, identifier_1.transformIdentifier)(context, declaration.name));
|
|
53
53
|
bodyWithFieldInitializers.push(assignment);
|
|
54
54
|
}
|
|
55
55
|
// else { TypeScript error: A parameter property may not be declared using a binding pattern }
|
|
@@ -58,7 +58,7 @@ function transformConstructorDeclaration(context, statement, className, instance
|
|
|
58
58
|
bodyWithFieldInitializers.push(...body);
|
|
59
59
|
const block = lua.createBlock(bodyWithFieldInitializers);
|
|
60
60
|
const constructorWasGenerated = statement.pos === -1;
|
|
61
|
-
scope_1.popScope(context);
|
|
61
|
+
(0, scope_1.popScope)(context);
|
|
62
62
|
return lua.createAssignmentStatement(createConstructorName(className), lua.createFunctionExpression(block, params, dotsLiteral, lua.FunctionExpressionFlags.Declaration), constructorWasGenerated ? classDeclaration : statement);
|
|
63
63
|
}
|
|
64
64
|
exports.transformConstructorDeclaration = transformConstructorDeclaration;
|
|
@@ -9,19 +9,19 @@ const method_1 = require("./method");
|
|
|
9
9
|
function createPropertyDecoratingExpression(context, node, className) {
|
|
10
10
|
if (!node.decorators)
|
|
11
11
|
return;
|
|
12
|
-
const propertyName = literal_1.transformPropertyName(context, node.name);
|
|
13
|
-
const propertyOwnerTable = method_1.transformMemberExpressionOwnerName(node, className);
|
|
14
|
-
return decorators_1.createDecoratingExpression(context, node.kind, node.decorators.map(d => decorators_1.transformDecoratorExpression(context, d)), propertyOwnerTable, propertyName);
|
|
12
|
+
const propertyName = (0, literal_1.transformPropertyName)(context, node.name);
|
|
13
|
+
const propertyOwnerTable = (0, method_1.transformMemberExpressionOwnerName)(node, className);
|
|
14
|
+
return (0, decorators_1.createDecoratingExpression)(context, node.kind, node.decorators.map(d => (0, decorators_1.transformDecoratorExpression)(context, d)), propertyOwnerTable, propertyName);
|
|
15
15
|
}
|
|
16
16
|
exports.createPropertyDecoratingExpression = createPropertyDecoratingExpression;
|
|
17
17
|
function transformClassInstanceFields(context, instanceFields) {
|
|
18
18
|
const statements = [];
|
|
19
19
|
for (const f of instanceFields) {
|
|
20
20
|
// Get identifier
|
|
21
|
-
const fieldName = literal_1.transformPropertyName(context, f.name);
|
|
21
|
+
const fieldName = (0, literal_1.transformPropertyName)(context, f.name);
|
|
22
22
|
const value = f.initializer ? context.transformExpression(f.initializer) : undefined;
|
|
23
23
|
// self[fieldName]
|
|
24
|
-
const selfIndex = lua.createTableIndexExpression(lua_ast_1.createSelfIdentifier(), fieldName);
|
|
24
|
+
const selfIndex = lua.createTableIndexExpression((0, lua_ast_1.createSelfIdentifier)(), fieldName);
|
|
25
25
|
// self[fieldName] = value
|
|
26
26
|
const assignClassField = lua.createAssignmentStatement(selfIndex, value, f);
|
|
27
27
|
statements.push(assignClassField);
|
|
@@ -32,7 +32,7 @@ exports.transformClassInstanceFields = transformClassInstanceFields;
|
|
|
32
32
|
function transformStaticPropertyDeclaration(context, field, className) {
|
|
33
33
|
if (!field.initializer)
|
|
34
34
|
return;
|
|
35
|
-
const fieldName = literal_1.transformPropertyName(context, field.name);
|
|
35
|
+
const fieldName = (0, literal_1.transformPropertyName)(context, field.name);
|
|
36
36
|
const value = context.transformExpression(field.initializer);
|
|
37
37
|
const classField = lua.createTableIndexExpression(lua.cloneIdentifier(className), fieldName);
|
|
38
38
|
return lua.createAssignmentStatement(classField, value);
|
|
@@ -10,11 +10,11 @@ const constructor_1 = require("./constructor");
|
|
|
10
10
|
const lualib_1 = require("../../../utils/lualib");
|
|
11
11
|
const utils_2 = require("../../../../utils");
|
|
12
12
|
function transformMemberExpressionOwnerName(node, className) {
|
|
13
|
-
return utils_1.isStaticNode(node) ? lua.cloneIdentifier(className) : constructor_1.createPrototypeName(className);
|
|
13
|
+
return (0, utils_1.isStaticNode)(node) ? lua.cloneIdentifier(className) : (0, constructor_1.createPrototypeName)(className);
|
|
14
14
|
}
|
|
15
15
|
exports.transformMemberExpressionOwnerName = transformMemberExpressionOwnerName;
|
|
16
16
|
function transformMethodName(context, node) {
|
|
17
|
-
const methodName = literal_1.transformPropertyName(context, node.name);
|
|
17
|
+
const methodName = (0, literal_1.transformPropertyName)(context, node.name);
|
|
18
18
|
if (lua.isStringLiteral(methodName) && methodName.value === "toString") {
|
|
19
19
|
return lua.createStringLiteral("__tostring", node.name);
|
|
20
20
|
}
|
|
@@ -27,7 +27,7 @@ function transformMethodDeclaration(context, node, className) {
|
|
|
27
27
|
return;
|
|
28
28
|
const methodTable = transformMemberExpressionOwnerName(node, className);
|
|
29
29
|
const methodName = transformMethodName(context, node);
|
|
30
|
-
const [functionExpression] = function_1.transformFunctionToExpression(context, node);
|
|
30
|
+
const [functionExpression] = (0, function_1.transformFunctionToExpression)(context, node);
|
|
31
31
|
return lua.createAssignmentStatement(lua.createTableIndexExpression(methodTable, methodName), functionExpression, node);
|
|
32
32
|
}
|
|
33
33
|
exports.transformMethodDeclaration = transformMethodDeclaration;
|
|
@@ -38,12 +38,12 @@ function createMethodDecoratingExpression(context, node, className) {
|
|
|
38
38
|
const parameterDecorators = node.parameters
|
|
39
39
|
.flatMap((parameter, index) => {
|
|
40
40
|
var _a;
|
|
41
|
-
return (_a = parameter.decorators) === null || _a === void 0 ? void 0 : _a.map(decorator => lualib_1.transformLuaLibFunction(context, lualib_1.LuaLibFeature.DecorateParam, node, lua.createNumericLiteral(index), decorators_1.transformDecoratorExpression(context, decorator)));
|
|
41
|
+
return (_a = parameter.decorators) === null || _a === void 0 ? void 0 : _a.map(decorator => (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.DecorateParam, node, lua.createNumericLiteral(index), (0, decorators_1.transformDecoratorExpression)(context, decorator)));
|
|
42
42
|
})
|
|
43
43
|
.filter(utils_2.isNonNull);
|
|
44
|
-
const methodDecorators = (_b = (_a = node.decorators) === null || _a === void 0 ? void 0 : _a.map(d => decorators_1.transformDecoratorExpression(context, d))) !== null && _b !== void 0 ? _b : [];
|
|
44
|
+
const methodDecorators = (_b = (_a = node.decorators) === null || _a === void 0 ? void 0 : _a.map(d => (0, decorators_1.transformDecoratorExpression)(context, d))) !== null && _b !== void 0 ? _b : [];
|
|
45
45
|
if (methodDecorators.length > 0 || parameterDecorators.length > 0) {
|
|
46
|
-
const decorateMethod = decorators_1.createDecoratingExpression(context, node.kind, [...methodDecorators, ...parameterDecorators], methodTable, methodName);
|
|
46
|
+
const decorateMethod = (0, decorators_1.createDecoratingExpression)(context, node.kind, [...methodDecorators, ...parameterDecorators], methodTable, methodName);
|
|
47
47
|
return lua.createExpressionStatement(decorateMethod);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
@@ -28,49 +28,49 @@ function checkForLuaLibType(context, type) {
|
|
|
28
28
|
const name = context.checker.getFullyQualifiedName(type.symbol);
|
|
29
29
|
switch (name) {
|
|
30
30
|
case "Map":
|
|
31
|
-
lualib_1.importLuaLibFeature(context, lualib_1.LuaLibFeature.Map);
|
|
31
|
+
(0, lualib_1.importLuaLibFeature)(context, lualib_1.LuaLibFeature.Map);
|
|
32
32
|
return;
|
|
33
33
|
case "Set":
|
|
34
|
-
lualib_1.importLuaLibFeature(context, lualib_1.LuaLibFeature.Set);
|
|
34
|
+
(0, lualib_1.importLuaLibFeature)(context, lualib_1.LuaLibFeature.Set);
|
|
35
35
|
return;
|
|
36
36
|
case "WeakMap":
|
|
37
|
-
lualib_1.importLuaLibFeature(context, lualib_1.LuaLibFeature.WeakMap);
|
|
37
|
+
(0, lualib_1.importLuaLibFeature)(context, lualib_1.LuaLibFeature.WeakMap);
|
|
38
38
|
return;
|
|
39
39
|
case "WeakSet":
|
|
40
|
-
lualib_1.importLuaLibFeature(context, lualib_1.LuaLibFeature.WeakSet);
|
|
40
|
+
(0, lualib_1.importLuaLibFeature)(context, lualib_1.LuaLibFeature.WeakSet);
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
43
|
if (builtinErrorTypeNames.has(name)) {
|
|
44
|
-
lualib_1.importLuaLibFeature(context, lualib_1.LuaLibFeature.Error);
|
|
44
|
+
(0, lualib_1.importLuaLibFeature)(context, lualib_1.LuaLibFeature.Error);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
exports.checkForLuaLibType = checkForLuaLibType;
|
|
48
48
|
const transformNewExpression = (node, context) => {
|
|
49
49
|
var _a;
|
|
50
50
|
const type = context.checker.getTypeAtLocation(node);
|
|
51
|
-
const annotations = annotations_1.getTypeAnnotations(type);
|
|
51
|
+
const annotations = (0, annotations_1.getTypeAnnotations)(type);
|
|
52
52
|
if (annotations.has(annotations_1.AnnotationKind.LuaTable)) {
|
|
53
|
-
context.diagnostics.push(diagnostics_1.annotationRemoved(node, annotations_1.AnnotationKind.LuaTable));
|
|
53
|
+
context.diagnostics.push((0, diagnostics_1.annotationRemoved)(node, annotations_1.AnnotationKind.LuaTable));
|
|
54
54
|
}
|
|
55
|
-
if (table_1.isTableNewCall(context, node)) {
|
|
55
|
+
if ((0, table_1.isTableNewCall)(context, node)) {
|
|
56
56
|
return lua.createTableExpression(undefined, node);
|
|
57
57
|
}
|
|
58
58
|
const signature = context.checker.getResolvedSignature(node);
|
|
59
59
|
const params = node.arguments
|
|
60
|
-
? call_1.transformArguments(context, node.arguments, signature)
|
|
60
|
+
? (0, call_1.transformArguments)(context, node.arguments, signature)
|
|
61
61
|
: [lua.createBooleanLiteral(true)];
|
|
62
62
|
checkForLuaLibType(context, type);
|
|
63
63
|
const name = context.transformExpression(node.expression);
|
|
64
64
|
const customConstructorAnnotation = annotations.get(annotations_1.AnnotationKind.CustomConstructor);
|
|
65
65
|
if (customConstructorAnnotation) {
|
|
66
66
|
if (customConstructorAnnotation.args.length === 1) {
|
|
67
|
-
return lua.createCallExpression(lua.createIdentifier(customConstructorAnnotation.args[0]), call_1.transformArguments(context, (_a = node.arguments) !== null && _a !== void 0 ? _a : []), node);
|
|
67
|
+
return lua.createCallExpression(lua.createIdentifier(customConstructorAnnotation.args[0]), (0, call_1.transformArguments)(context, (_a = node.arguments) !== null && _a !== void 0 ? _a : []), node);
|
|
68
68
|
}
|
|
69
69
|
else {
|
|
70
|
-
context.diagnostics.push(diagnostics_1.annotationInvalidArgumentCount(node, annotations_1.AnnotationKind.CustomConstructor, customConstructorAnnotation.args.length, 1));
|
|
70
|
+
context.diagnostics.push((0, diagnostics_1.annotationInvalidArgumentCount)(node, annotations_1.AnnotationKind.CustomConstructor, customConstructorAnnotation.args.length, 1));
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
return lualib_1.transformLuaLibFunction(context, lualib_1.LuaLibFeature.New, node, name, ...params);
|
|
73
|
+
return (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.New, node, name, ...params);
|
|
74
74
|
};
|
|
75
75
|
exports.transformNewExpression = transformNewExpression;
|
|
76
76
|
//# sourceMappingURL=new.js.map
|
|
@@ -11,34 +11,34 @@ const utils_2 = require("./utils");
|
|
|
11
11
|
function createClassSetup(context, statement, className, localClassName, extendsType) {
|
|
12
12
|
const result = [];
|
|
13
13
|
// __TS__Class()
|
|
14
|
-
const classInitializer = lualib_1.transformLuaLibFunction(context, lualib_1.LuaLibFeature.Class, statement);
|
|
15
|
-
const defaultExportLeftHandSide = export_1.hasDefaultExportModifier(statement)
|
|
16
|
-
? lua.createTableIndexExpression(lua_ast_1.createExportsIdentifier(), export_1.createDefaultExportStringLiteral(statement))
|
|
14
|
+
const classInitializer = (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.Class, statement);
|
|
15
|
+
const defaultExportLeftHandSide = (0, export_1.hasDefaultExportModifier)(statement)
|
|
16
|
+
? lua.createTableIndexExpression((0, lua_ast_1.createExportsIdentifier)(), (0, export_1.createDefaultExportStringLiteral)(statement))
|
|
17
17
|
: undefined;
|
|
18
18
|
// [____exports.]className = __TS__Class()
|
|
19
19
|
if (defaultExportLeftHandSide) {
|
|
20
20
|
result.push(lua.createAssignmentStatement(defaultExportLeftHandSide, classInitializer, statement));
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
|
-
result.push(...lua_ast_1.createLocalOrExportedOrGlobalDeclaration(context, className, classInitializer, statement));
|
|
23
|
+
result.push(...(0, lua_ast_1.createLocalOrExportedOrGlobalDeclaration)(context, className, classInitializer, statement));
|
|
24
24
|
}
|
|
25
25
|
if (defaultExportLeftHandSide) {
|
|
26
26
|
// local localClassName = ____exports.default
|
|
27
27
|
result.push(lua.createVariableDeclarationStatement(localClassName, defaultExportLeftHandSide));
|
|
28
28
|
}
|
|
29
29
|
else {
|
|
30
|
-
const exportScope = export_1.getIdentifierExportScope(context, className);
|
|
30
|
+
const exportScope = (0, export_1.getIdentifierExportScope)(context, className);
|
|
31
31
|
if (exportScope) {
|
|
32
32
|
// local localClassName = ____exports.className
|
|
33
|
-
result.push(lua.createVariableDeclarationStatement(localClassName, export_1.createExportedIdentifier(context, lua.cloneIdentifier(className), exportScope)));
|
|
33
|
+
result.push(lua.createVariableDeclarationStatement(localClassName, (0, export_1.createExportedIdentifier)(context, lua.cloneIdentifier(className), exportScope)));
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
// localClassName.name = className
|
|
37
37
|
result.push(lua.createAssignmentStatement(lua.createTableIndexExpression(lua.cloneIdentifier(localClassName), lua.createStringLiteral("name")), getReflectionClassName(context, statement, className), statement));
|
|
38
38
|
if (extendsType) {
|
|
39
|
-
const extendedNode = utils_2.getExtendedNode(context, statement);
|
|
40
|
-
utils_1.assert(extendedNode);
|
|
41
|
-
result.push(lua.createExpressionStatement(lualib_1.transformLuaLibFunction(context, lualib_1.LuaLibFeature.ClassExtends, utils_2.getExtendsClause(statement), lua.cloneIdentifier(localClassName), context.transformExpression(extendedNode.expression))));
|
|
39
|
+
const extendedNode = (0, utils_2.getExtendedNode)(context, statement);
|
|
40
|
+
(0, utils_1.assert)(extendedNode);
|
|
41
|
+
result.push(lua.createExpressionStatement((0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.ClassExtends, (0, utils_2.getExtendsClause)(statement), lua.cloneIdentifier(localClassName), context.transformExpression(extendedNode.expression))));
|
|
42
42
|
}
|
|
43
43
|
return result;
|
|
44
44
|
}
|
|
@@ -50,10 +50,10 @@ function getReflectionClassName(context, declaration, className) {
|
|
|
50
50
|
else if (ts.isVariableDeclaration(declaration.parent) && ts.isIdentifier(declaration.parent.name)) {
|
|
51
51
|
return lua.createStringLiteral(declaration.parent.name.text);
|
|
52
52
|
}
|
|
53
|
-
else if (export_1.hasDefaultExportModifier(declaration)) {
|
|
53
|
+
else if ((0, export_1.hasDefaultExportModifier)(declaration)) {
|
|
54
54
|
return lua.createStringLiteral("default");
|
|
55
55
|
}
|
|
56
|
-
if (utils_2.getExtendedNode(context, declaration)) {
|
|
56
|
+
if ((0, utils_2.getExtendedNode)(context, declaration)) {
|
|
57
57
|
return lua.createTableIndexExpression(className, lua.createStringLiteral("name"));
|
|
58
58
|
}
|
|
59
59
|
return lua.createStringLiteral("");
|
|
@@ -19,9 +19,9 @@ function getExtendedNode(context, node) {
|
|
|
19
19
|
if (!extendsClause)
|
|
20
20
|
return;
|
|
21
21
|
const superType = context.checker.getTypeAtLocation(extendsClause.types[0]);
|
|
22
|
-
const annotations = annotations_1.getTypeAnnotations(superType);
|
|
22
|
+
const annotations = (0, annotations_1.getTypeAnnotations)(superType);
|
|
23
23
|
if (annotations.has(annotations_1.AnnotationKind.PureAbstract)) {
|
|
24
|
-
context.diagnostics.push(diagnostics_1.annotationRemoved(extendsClause, annotations_1.AnnotationKind.PureAbstract));
|
|
24
|
+
context.diagnostics.push((0, diagnostics_1.annotationRemoved)(extendsClause, annotations_1.AnnotationKind.PureAbstract));
|
|
25
25
|
}
|
|
26
26
|
return extendsClause.types[0];
|
|
27
27
|
}
|
|
@@ -55,10 +55,10 @@ const transformConditionalExpression = (expression, context) => {
|
|
|
55
55
|
};
|
|
56
56
|
exports.transformConditionalExpression = transformConditionalExpression;
|
|
57
57
|
function transformIfStatement(statement, context) {
|
|
58
|
-
scope_1.pushScope(context, scope_1.ScopeType.Conditional);
|
|
58
|
+
(0, scope_1.pushScope)(context, scope_1.ScopeType.Conditional);
|
|
59
59
|
const condition = context.transformExpression(statement.expression);
|
|
60
|
-
const statements = scope_1.performHoisting(context, block_1.transformBlockOrStatement(context, statement.thenStatement));
|
|
61
|
-
scope_1.popScope(context);
|
|
60
|
+
const statements = (0, scope_1.performHoisting)(context, (0, block_1.transformBlockOrStatement)(context, statement.thenStatement));
|
|
61
|
+
(0, scope_1.popScope)(context);
|
|
62
62
|
const ifBlock = lua.createBlock(statements);
|
|
63
63
|
if (statement.elseStatement) {
|
|
64
64
|
if (ts.isIfStatement(statement.elseStatement)) {
|
|
@@ -66,9 +66,9 @@ function transformIfStatement(statement, context) {
|
|
|
66
66
|
return lua.createIfStatement(condition, ifBlock, elseStatement);
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
|
-
scope_1.pushScope(context, scope_1.ScopeType.Conditional);
|
|
70
|
-
const elseStatements = scope_1.performHoisting(context, block_1.transformBlockOrStatement(context, statement.elseStatement));
|
|
71
|
-
scope_1.popScope(context);
|
|
69
|
+
(0, scope_1.pushScope)(context, scope_1.ScopeType.Conditional);
|
|
70
|
+
const elseStatements = (0, scope_1.performHoisting)(context, (0, block_1.transformBlockOrStatement)(context, statement.elseStatement));
|
|
71
|
+
(0, scope_1.popScope)(context);
|
|
72
72
|
const elseBlock = lua.createBlock(elseStatements);
|
|
73
73
|
return lua.createIfStatement(condition, ifBlock, elseBlock);
|
|
74
74
|
}
|
|
@@ -21,15 +21,15 @@ const transformDeleteExpression = (node, context) => {
|
|
|
21
21
|
propertyExpression = context.transformExpression(node.expression.argumentExpression);
|
|
22
22
|
const type = context.checker.getTypeAtLocation(node.expression.expression);
|
|
23
23
|
const argumentType = context.checker.getTypeAtLocation(node.expression.argumentExpression);
|
|
24
|
-
if (typescript_1.isArrayType(context, type) && typescript_1.isNumberType(context, argumentType)) {
|
|
25
|
-
propertyExpression = lua_ast_1.addToNumericExpression(propertyExpression, 1);
|
|
24
|
+
if ((0, typescript_1.isArrayType)(context, type) && (0, typescript_1.isNumberType)(context, argumentType)) {
|
|
25
|
+
propertyExpression = (0, lua_ast_1.addToNumericExpression)(propertyExpression, 1);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
if (!ownerExpression || !propertyExpression) {
|
|
29
|
-
context.diagnostics.push(diagnostics_1.unsupportedProperty(node, "delete", ts.SyntaxKind[node.kind]));
|
|
29
|
+
context.diagnostics.push((0, diagnostics_1.unsupportedProperty)(node, "delete", ts.SyntaxKind[node.kind]));
|
|
30
30
|
return lua.createNilLiteral();
|
|
31
31
|
}
|
|
32
|
-
return lualib_1.transformLuaLibFunction(context, lualib_1.LuaLibFeature.Delete, node, ownerExpression, propertyExpression);
|
|
32
|
+
return (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.Delete, node, ownerExpression, propertyExpression);
|
|
33
33
|
};
|
|
34
34
|
exports.transformDeleteExpression = transformDeleteExpression;
|
|
35
35
|
//# sourceMappingURL=delete.js.map
|
|
@@ -24,16 +24,16 @@ const transformEnumDeclaration = (node, context) => {
|
|
|
24
24
|
return undefined;
|
|
25
25
|
}
|
|
26
26
|
const type = context.checker.getTypeAtLocation(node);
|
|
27
|
-
const membersOnly = annotations_1.getTypeAnnotations(type).has(annotations_1.AnnotationKind.CompileMembersOnly);
|
|
27
|
+
const membersOnly = (0, annotations_1.getTypeAnnotations)(type).has(annotations_1.AnnotationKind.CompileMembersOnly);
|
|
28
28
|
const result = [];
|
|
29
|
-
if (!membersOnly && typescript_1.isFirstDeclaration(context, node)) {
|
|
30
|
-
const name = identifier_1.transformIdentifier(context, node.name);
|
|
29
|
+
if (!membersOnly && (0, typescript_1.isFirstDeclaration)(context, node)) {
|
|
30
|
+
const name = (0, identifier_1.transformIdentifier)(context, node.name);
|
|
31
31
|
const table = lua.createBinaryExpression(lua.cloneIdentifier(name), lua.createTableExpression(), lua.SyntaxKind.OrOperator);
|
|
32
|
-
result.push(...lua_ast_1.createLocalOrExportedOrGlobalDeclaration(context, name, table, node));
|
|
32
|
+
result.push(...(0, lua_ast_1.createLocalOrExportedOrGlobalDeclaration)(context, name, table, node));
|
|
33
33
|
}
|
|
34
34
|
const enumReference = context.transformExpression(node.name);
|
|
35
35
|
for (const member of node.members) {
|
|
36
|
-
const memberName = literal_1.transformPropertyName(context, member.name);
|
|
36
|
+
const memberName = (0, literal_1.transformPropertyName)(context, member.name);
|
|
37
37
|
let valueExpression;
|
|
38
38
|
const constEnumValue = tryGetConstEnumValue(context, member);
|
|
39
39
|
if (constEnumValue) {
|
|
@@ -45,7 +45,7 @@ const transformEnumDeclaration = (node, context) => {
|
|
|
45
45
|
if ((symbol === null || symbol === void 0 ? void 0 : symbol.valueDeclaration) &&
|
|
46
46
|
ts.isEnumMember(symbol.valueDeclaration) &&
|
|
47
47
|
symbol.valueDeclaration.parent === node) {
|
|
48
|
-
const otherMemberName = literal_1.transformPropertyName(context, symbol.valueDeclaration.name);
|
|
48
|
+
const otherMemberName = (0, literal_1.transformPropertyName)(context, symbol.valueDeclaration.name);
|
|
49
49
|
valueExpression = lua.createTableIndexExpression(enumReference, otherMemberName);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -58,8 +58,8 @@ const transformEnumDeclaration = (node, context) => {
|
|
|
58
58
|
}
|
|
59
59
|
if (membersOnly) {
|
|
60
60
|
const enumSymbol = context.checker.getSymbolAtLocation(node.name);
|
|
61
|
-
const exportScope = enumSymbol ? export_1.getSymbolExportScope(context, enumSymbol) : undefined;
|
|
62
|
-
result.push(...lua_ast_1.createLocalOrExportedOrGlobalDeclaration(context, lua.isIdentifier(memberName)
|
|
61
|
+
const exportScope = enumSymbol ? (0, export_1.getSymbolExportScope)(context, enumSymbol) : undefined;
|
|
62
|
+
result.push(...(0, lua_ast_1.createLocalOrExportedOrGlobalDeclaration)(context, lua.isIdentifier(memberName)
|
|
63
63
|
? memberName
|
|
64
64
|
: lua.createIdentifier(member.name.getText(), member.name), valueExpression, node, exportScope));
|
|
65
65
|
}
|