UNPKG

typescript-to-lua

Version:

A generic TypeScript to Lua transpiler. Write your code in TypeScript and publish Lua!

33 lines 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.tryTransformBuiltinGlobalCall = tryTransformBuiltinGlobalCall; const lualib_1 = require("../utils/lualib"); const typescript_1 = require("../utils/typescript"); const call_1 = require("../visitors/call"); const string_1 = require("./string"); function tryTransformBuiltinGlobalCall(context, node, expressionType) { function getParameters() { const signature = context.checker.getResolvedSignature(node); return (0, call_1.transformArguments)(context, node.arguments, signature); } const name = expressionType.symbol.name; switch (name) { case "SymbolConstructor": return (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.Symbol, node, ...getParameters()); case "NumberConstructor": return (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.Number, node, ...getParameters()); case "StringConstructor": return (0, string_1.transformStringConstructorCall)(node, ...getParameters()); case "isNaN": case "isFinite": const numberParameters = (0, typescript_1.isNumberType)(context, expressionType) ? getParameters() : [(0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.Number, undefined, ...getParameters())]; return (0, lualib_1.transformLuaLibFunction)(context, name === "isNaN" ? lualib_1.LuaLibFeature.NumberIsNaN : lualib_1.LuaLibFeature.NumberIsFinite, node, ...numberParameters); case "parseFloat": return (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.ParseFloat, node, ...getParameters()); case "parseInt": return (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.ParseInt, node, ...getParameters()); } } //# sourceMappingURL=global.js.map