typescript-to-lua 1.6.3 → 1.7.2
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/dist/CompilerOptions.d.ts +1 -0
- package/dist/cli/parse.js +5 -0
- package/dist/lualib/ArraySlice.lua +10 -2
- package/dist/lualib/ArraySplice.lua +5 -1
- package/dist/lualib/Generator.lua +8 -1
- package/dist/lualib/ParseFloat.lua +5 -1
- package/dist/lualib/SparseArraySpread.lua +5 -1
- package/dist/lualib/StringCharCodeAt.lua +5 -1
- package/dist/lualib/lualib_bundle.lua +38 -7
- package/dist/lualib-build/plugin.js +1 -2
- package/dist/measure-performance.d.ts +15 -0
- package/dist/measure-performance.js +83 -0
- package/dist/transformation/builtins/array.js +2 -1
- package/dist/transformation/builtins/function.js +1 -1
- package/dist/transformation/builtins/global.d.ts +1 -1
- package/dist/transformation/builtins/global.js +13 -12
- package/dist/transformation/builtins/index.d.ts +2 -2
- package/dist/transformation/builtins/index.js +87 -89
- package/dist/transformation/builtins/object.d.ts +1 -1
- package/dist/transformation/builtins/object.js +4 -4
- package/dist/transformation/builtins/promise.js +4 -2
- package/dist/transformation/builtins/string.js +2 -0
- package/dist/transformation/context/context.d.ts +15 -0
- package/dist/transformation/context/context.js +66 -24
- package/dist/transformation/context/visitors.d.ts +1 -1
- package/dist/transformation/index.js +6 -5
- package/dist/transformation/utils/annotations.d.ts +1 -17
- package/dist/transformation/utils/annotations.js +48 -88
- package/dist/transformation/utils/assignment-validation.js +27 -23
- package/dist/transformation/utils/diagnostics.d.ts +1 -4
- package/dist/transformation/utils/diagnostics.js +2 -3
- package/dist/transformation/utils/function-context.d.ts +1 -1
- package/dist/transformation/utils/function-context.js +57 -51
- package/dist/transformation/utils/language-extensions.d.ts +57 -51
- package/dist/transformation/utils/language-extensions.js +99 -119
- package/dist/transformation/utils/lualib.d.ts +0 -1
- package/dist/transformation/utils/lualib.js +2 -8
- package/dist/transformation/utils/safe-names.d.ts +1 -1
- package/dist/transformation/utils/safe-names.js +3 -6
- package/dist/transformation/utils/scope.d.ts +0 -2
- package/dist/transformation/utils/scope.js +10 -27
- package/dist/transformation/utils/symbols.d.ts +1 -1
- package/dist/transformation/utils/symbols.js +7 -20
- package/dist/transformation/utils/typescript/index.d.ts +1 -0
- package/dist/transformation/utils/typescript/index.js +2 -1
- package/dist/transformation/utils/typescript/types.d.ts +2 -5
- package/dist/transformation/utils/typescript/types.js +27 -37
- package/dist/transformation/visitors/access.js +1 -4
- package/dist/transformation/visitors/block.js +4 -4
- package/dist/transformation/visitors/call.js +10 -21
- package/dist/transformation/visitors/class/index.js +8 -20
- package/dist/transformation/visitors/class/members/constructor.js +2 -2
- package/dist/transformation/visitors/class/new.js +2 -5
- package/dist/transformation/visitors/class/setup.d.ts +1 -1
- package/dist/transformation/visitors/class/setup.js +4 -4
- package/dist/transformation/visitors/class/utils.d.ts +1 -1
- package/dist/transformation/visitors/class/utils.js +2 -9
- package/dist/transformation/visitors/conditional.js +4 -4
- package/dist/transformation/visitors/function.d.ts +1 -1
- package/dist/transformation/visitors/function.js +8 -16
- package/dist/transformation/visitors/identifier.d.ts +1 -0
- package/dist/transformation/visitors/identifier.js +40 -44
- package/dist/transformation/visitors/language-extensions/call-extension.d.ts +10 -0
- package/dist/transformation/visitors/language-extensions/call-extension.js +23 -0
- package/dist/transformation/visitors/language-extensions/identifier.d.ts +5 -0
- package/dist/transformation/visitors/language-extensions/identifier.js +27 -0
- package/dist/transformation/visitors/language-extensions/iterable.d.ts +2 -3
- package/dist/transformation/visitors/language-extensions/iterable.js +23 -22
- package/dist/transformation/visitors/language-extensions/multi.d.ts +0 -1
- package/dist/transformation/visitors/language-extensions/multi.js +10 -24
- package/dist/transformation/visitors/language-extensions/operators.d.ts +2 -5
- package/dist/transformation/visitors/language-extensions/operators.js +89 -96
- package/dist/transformation/visitors/language-extensions/range.js +4 -2
- package/dist/transformation/visitors/language-extensions/table.d.ts +6 -3
- package/dist/transformation/visitors/language-extensions/table.js +46 -75
- package/dist/transformation/visitors/language-extensions/vararg.js +7 -3
- package/dist/transformation/visitors/literal.js +2 -23
- package/dist/transformation/visitors/loops/for-of.js +18 -18
- package/dist/transformation/visitors/loops/utils.js +5 -5
- package/dist/transformation/visitors/modules/import.js +2 -2
- package/dist/transformation/visitors/namespace.js +5 -14
- package/dist/transformation/visitors/return.js +2 -3
- package/dist/transformation/visitors/sourceFile.js +3 -4
- package/dist/transformation/visitors/spread.js +0 -5
- package/dist/transformation/visitors/switch.js +2 -2
- package/dist/transformation/visitors/variable-declaration.js +1 -1
- package/dist/transpilation/plugins.js +3 -0
- package/dist/transpilation/resolve.js +210 -186
- package/dist/transpilation/transpile.js +10 -0
- package/dist/transpilation/transpiler.d.ts +1 -0
- package/dist/transpilation/transpiler.js +18 -5
- package/dist/tstl.js +21 -0
- package/language-extensions/index.d.ts +167 -67
- package/package.json +2 -2
- package/dist/transformation/visitors/language-extensions/index.d.ts +0 -4
- package/dist/transformation/visitors/language-extensions/index.js +0 -17
- package/dist/transformation/visitors/language-extensions/pairsIterable.d.ts +0 -5
- package/dist/transformation/visitors/language-extensions/pairsIterable.js +0 -53
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transformForOfPairsIterableStatement = exports.isPairsIterableExpression = void 0;
|
|
4
|
-
const ts = require("typescript");
|
|
5
|
-
const lua = require("../../../LuaAST");
|
|
6
|
-
const utils_1 = require("../../../utils");
|
|
7
|
-
const diagnostics_1 = require("../../utils/diagnostics");
|
|
8
|
-
const extensions = require("../../utils/language-extensions");
|
|
9
|
-
const utils_2 = require("../loops/utils");
|
|
10
|
-
const variable_declaration_1 = require("../variable-declaration");
|
|
11
|
-
function isPairsIterableType(type) {
|
|
12
|
-
return extensions.isExtensionType(type, extensions.ExtensionKind.PairsIterableType);
|
|
13
|
-
}
|
|
14
|
-
function isPairsIterableExpression(context, expression) {
|
|
15
|
-
const type = context.checker.getTypeAtLocation(expression);
|
|
16
|
-
return isPairsIterableType(type);
|
|
17
|
-
}
|
|
18
|
-
exports.isPairsIterableExpression = isPairsIterableExpression;
|
|
19
|
-
function transformForOfPairsIterableStatement(context, statement, block) {
|
|
20
|
-
const pairsCall = lua.createCallExpression(lua.createIdentifier("pairs"), [
|
|
21
|
-
context.transformExpression(statement.expression),
|
|
22
|
-
]);
|
|
23
|
-
let identifiers = [];
|
|
24
|
-
if (ts.isVariableDeclarationList(statement.initializer)) {
|
|
25
|
-
// Variables declared in for loop
|
|
26
|
-
// for key, value in iterable do
|
|
27
|
-
const binding = (0, utils_2.getVariableDeclarationBinding)(context, statement.initializer);
|
|
28
|
-
if (ts.isArrayBindingPattern(binding)) {
|
|
29
|
-
identifiers = binding.elements.map(e => (0, variable_declaration_1.transformArrayBindingElement)(context, e));
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
context.diagnostics.push((0, diagnostics_1.invalidPairsIterableWithoutDestructuring)(binding));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
else if (ts.isArrayLiteralExpression(statement.initializer)) {
|
|
36
|
-
// Variables NOT declared in for loop - catch iterator values in temps and assign
|
|
37
|
-
// for ____key, ____value in iterable do
|
|
38
|
-
// key, value = ____key, ____value
|
|
39
|
-
identifiers = statement.initializer.elements.map(e => context.createTempNameForNode(e));
|
|
40
|
-
if (identifiers.length > 0) {
|
|
41
|
-
block.statements.unshift(lua.createAssignmentStatement(statement.initializer.elements.map(e => (0, utils_1.cast)(context.transformExpression(e), lua.isAssignmentLeftHandSideExpression)), identifiers));
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
context.diagnostics.push((0, diagnostics_1.invalidPairsIterableWithoutDestructuring)(statement.initializer));
|
|
46
|
-
}
|
|
47
|
-
if (identifiers.length === 0) {
|
|
48
|
-
identifiers.push(lua.createAnonymousIdentifier());
|
|
49
|
-
}
|
|
50
|
-
return lua.createForInStatement(block, identifiers, [pairsCall], statement);
|
|
51
|
-
}
|
|
52
|
-
exports.transformForOfPairsIterableStatement = transformForOfPairsIterableStatement;
|
|
53
|
-
//# sourceMappingURL=pairsIterable.js.map
|