Skip to content
This repository was archived by the owner on Feb 28, 2018. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ node-v8/
*.swp
src/**/*.js
*.js.map
.turbo
/TurboScript.iml
!src/library/asmjs/runtime.js
!src/library/webassembly/wrapper.js
Expand Down
102 changes: 54 additions & 48 deletions lib/turboscript.js
Original file line number Diff line number Diff line change
Expand Up @@ -1514,8 +1514,8 @@ var WasmSection;
"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var env_1 = __webpack_require__(20);
var color_1 = __webpack_require__(19);
var env_1 = __webpack_require__(21);
var color_1 = __webpack_require__(20);
/**
* Created by n.vinayakan on 06.06.17.
*/
Expand Down Expand Up @@ -1660,7 +1660,7 @@ exports.assert = assert;
Object.defineProperty(exports, "__esModule", { value: true });
var bytearray_1 = __webpack_require__(0);
var logger_1 = __webpack_require__(27);
var stringbuilder_1 = __webpack_require__(21);
var stringbuilder_1 = __webpack_require__(22);
var wasm_section_1 = __webpack_require__(1);
var utils_1 = __webpack_require__(8);
/**
Expand Down Expand Up @@ -1715,7 +1715,7 @@ exports.WasmSectionBinary = WasmSectionBinary;
"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var color_1 = __webpack_require__(19);
var color_1 = __webpack_require__(20);
var assert_1 = __webpack_require__(3);
var terminal_1 = __webpack_require__(2);
var LineColumn = (function () {
Expand Down Expand Up @@ -3941,7 +3941,7 @@ Object.freeze(exports.WasmOpcode);
"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var bitness_1 = __webpack_require__(22);
var bitness_1 = __webpack_require__(16);
var wasm_type_1 = __webpack_require__(6);
var symbol_1 = __webpack_require__(7);
/**
Expand Down Expand Up @@ -4832,7 +4832,7 @@ exports.tokenize = tokenize;
"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var env_1 = __webpack_require__(20);
var env_1 = __webpack_require__(21);
var terminal_1 = __webpack_require__(2);
/**
* Created by n.vinayakan on 06.06.17.
Expand Down Expand Up @@ -4947,9 +4947,26 @@ exports.FileSystem = FileSystem;

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
/**
* Created by n.vinayakan on 02.06.17.
*/
var Bitness;
(function (Bitness) {
Bitness[Bitness["x32"] = 0] = "x32";
Bitness[Bitness["x64"] = 1] = "x64";
})(Bitness = exports.Bitness || (exports.Bitness = {}));


/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var wasm_type_1 = __webpack_require__(6);
var stringbuilder_1 = __webpack_require__(21);
var stringbuilder_1 = __webpack_require__(22);
/**
* Created by n.vinayakan on 02.06.17.
*/
Expand All @@ -4974,7 +4991,7 @@ exports.WasmFunction = WasmFunction;


/***/ }),
/* 17 */
/* 18 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
Expand Down Expand Up @@ -5151,7 +5168,7 @@ exports.WasmBinary = WasmBinary;


/***/ }),
/* 18 */
/* 19 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
Expand All @@ -5167,6 +5184,7 @@ var scanner_1 = __webpack_require__(14);
var parser_1 = __webpack_require__(32);
var shaking_1 = __webpack_require__(70);
var webassembly_1 = __webpack_require__(66);
var bitness_1 = __webpack_require__(16);
var library_1 = __webpack_require__(75);
var preparser_1 = __webpack_require__(71);
var compile_target_1 = __webpack_require__(9);
Expand All @@ -5178,12 +5196,14 @@ var terminal_1 = __webpack_require__(2);
var Compiler = (function () {
function Compiler() {
}
Compiler.prototype.initialize = function (target, outputName) {
Compiler.prototype.initialize = function (target, outputName, options) {
if (options === void 0) { options = {}; }
assert_1.assert(this.log == null);
this.log = new log_1.Log();
this.preprocessor = new preprocessor_1.Preprocessor();
Compiler.binaryImports = [];
this.target = target;
this.options = options;
this.outputName = outputName;
this.librarySource = this.addInput("<native>", library_1.Library.get(target));
this.librarySource.isLibrary = true;
Expand Down Expand Up @@ -5321,7 +5341,8 @@ var Compiler = (function () {
// jsEmit(this);
// } else
if (this.target == compile_target_1.CompileTarget.WEBASSEMBLY) {
webassembly_1.wasmEmit(this);
var _a = this.options, longPtr = _a.longPtr, optimize = _a.optimize;
webassembly_1.wasmEmit(this, longPtr ? bitness_1.Bitness.x64 : bitness_1.Bitness.x32, optimize);
}
terminal_1.Terminal.timeEnd("emitting");
terminal_1.Terminal.write("Done!");
Expand All @@ -5346,7 +5367,7 @@ exports.replaceFileExtension = replaceFileExtension;


/***/ }),
/* 19 */
/* 20 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
Expand Down Expand Up @@ -5384,7 +5405,7 @@ exports.HexColor = hexColor;


/***/ }),
/* 20 */
/* 21 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
Expand All @@ -5399,7 +5420,7 @@ exports.isNode = typeof global !== "undefined" && typeof process !== "undefined"


/***/ }),
/* 21 */
/* 22 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
Expand Down Expand Up @@ -5553,23 +5574,6 @@ var StringBuilder = (function () {
exports.StringBuilder = StringBuilder;


/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
/**
* Created by n.vinayakan on 02.06.17.
*/
var Bitness;
(function (Bitness) {
Bitness[Bitness["x32"] = 0] = "x32";
Bitness[Bitness["x64"] = 1] = "x64";
})(Bitness = exports.Bitness || (exports.Bitness = {}));


/***/ }),
/* 23 */
/***/ (function(module, exports, __webpack_require__) {
Expand Down Expand Up @@ -7461,7 +7465,7 @@ exports.parse = parse;

Object.defineProperty(exports, "__esModule", { value: true });
var filesystem_1 = __webpack_require__(15);
var wasm_binary_1 = __webpack_require__(17);
var wasm_binary_1 = __webpack_require__(18);
var wasm_section_1 = __webpack_require__(1);
var wasm_external_kind_1 = __webpack_require__(11);
var terminal_1 = __webpack_require__(2);
Expand Down Expand Up @@ -7536,12 +7540,12 @@ exports.isBinaryImport = isBinaryImport;
Object.defineProperty(exports, "__esModule", { value: true });
///<reference path="declarations.d.ts" />
var log_1 = __webpack_require__(5);
var compiler_1 = __webpack_require__(18);
var compiler_1 = __webpack_require__(19);
var compile_target_1 = __webpack_require__(9);
var terminal_1 = __webpack_require__(2);
var filesystem_1 = __webpack_require__(15);
var compiler_options_1 = __webpack_require__(68);
var color_1 = __webpack_require__(19);
var color_1 = __webpack_require__(20);
/**
* TurboScript compiler main entry
*/
Expand Down Expand Up @@ -7569,7 +7573,7 @@ function main_reset() {
}
exports.main_reset = main_reset;
function printUsage() {
terminal_1.Terminal.write("\nUsage: tc [FLAGS] [INPUTS]\n\n --help Print this message.\n --out [PATH] Emit code to PATH (the target format is the file extension).\n --wasm Explicit webassembly output \n --define [NAME] Define the flag NAME in all input files.\n\nExamples:\n\n tc src/*.tbs --out main.wasm\n");
terminal_1.Terminal.write("\nUsage: tc [FLAGS] [INPUTS]\n\n --help Print this message.\n --out [PATH] Emit code to PATH (the target format is the file extension).\n --wasm Explicit webassembly output\n --define [NAME] Define the flag NAME in all input files.\n\nExamples:\n\n tc src/*.tbs --out main.wasm\n");
}
exports.printUsage = printUsage;
function main_entry() {
Expand Down Expand Up @@ -7727,7 +7731,7 @@ function compileString(source, options) {
var output = "/virtual/inline.wasm";
filesystem_1.FileSystem.writeTextFile(input, source, true);
var compiler = new compiler_1.Compiler();
compiler.initialize(options.target, output);
compiler.initialize(options.target, output, options);
compiler.addInput(input, source);
compiler.finish();
terminal_1.Terminal.silent = false;
Expand All @@ -7749,7 +7753,7 @@ function compileString(source, options) {
}
}
exports.compileString = compileString;
exports.version = "1.0.5-beta";
exports.version = "1.0.6-beta";
terminal_1.Terminal.setTextColor(color_1.Color.MAGENTA);
terminal_1.Terminal.write("~~~~~~~~~~~~~~~~~~~~~~~~~| TurboScript " + exports.version + " |~~~~~~~~~~~~~~~~~~~~~~~~~\n");
terminal_1.Terminal.clearColor();
Expand Down Expand Up @@ -8110,7 +8114,7 @@ exports.isBuiltin = isBuiltin;

Object.defineProperty(exports, "__esModule", { value: true });
var bytearray_1 = __webpack_require__(0);
var stringbuilder_1 = __webpack_require__(21);
var stringbuilder_1 = __webpack_require__(22);
/**
* Created by 01 on 2017-06-23.
*/
Expand Down Expand Up @@ -8934,7 +8938,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
var wasm_binary_section_1 = __webpack_require__(4);
var wasm_section_1 = __webpack_require__(1);
var bytearray_1 = __webpack_require__(0);
var wasm_function_1 = __webpack_require__(16);
var wasm_function_1 = __webpack_require__(17);
/**
* Created by 01 on 2017-06-17.
*/
Expand Down Expand Up @@ -9139,7 +9143,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
var wasm_binary_section_1 = __webpack_require__(4);
var wasm_section_1 = __webpack_require__(1);
var bytearray_1 = __webpack_require__(0);
var wasm_function_1 = __webpack_require__(16);
var wasm_function_1 = __webpack_require__(17);
var wasm_parser_1 = __webpack_require__(29);
/**
* Created by 01 on 2017-06-17.
Expand Down Expand Up @@ -9530,8 +9534,8 @@ exports.TableSection = TableSection;
"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var wasm_binary_1 = __webpack_require__(17);
var wasm_function_1 = __webpack_require__(16);
var wasm_binary_1 = __webpack_require__(18);
var wasm_function_1 = __webpack_require__(17);
var wasm_import_1 = __webpack_require__(25);
var wasm_signature_1 = __webpack_require__(26);
var wasm_global_1 = __webpack_require__(24);
Expand Down Expand Up @@ -9718,7 +9722,7 @@ var builtins_helper_1 = __webpack_require__(47);
var assert_1 = __webpack_require__(3);
var wasm_type_1 = __webpack_require__(6);
var logger_1 = __webpack_require__(27);
var bitness_1 = __webpack_require__(22);
var bitness_1 = __webpack_require__(16);
var wasm_section_1 = __webpack_require__(1);
var wasm_external_kind_1 = __webpack_require__(11);
var wasm_local_1 = __webpack_require__(49);
Expand All @@ -9727,7 +9731,7 @@ var wasm_assembler_1 = __webpack_require__(46);
var terminal_1 = __webpack_require__(2);
var utils_2 = __webpack_require__(13);
var wasm_optimizer_1 = __webpack_require__(51);
var wasm_binary_1 = __webpack_require__(17);
var wasm_binary_1 = __webpack_require__(18);
var binary_importer_1 = __webpack_require__(33);
var WasmModuleEmitter = (function () {
function WasmModuleEmitter(bitness) {
Expand Down Expand Up @@ -11443,7 +11447,7 @@ var scope_1 = __webpack_require__(30);
var utils_1 = __webpack_require__(8);
var const_1 = __webpack_require__(69);
var assert_1 = __webpack_require__(3);
var compiler_1 = __webpack_require__(18);
var compiler_1 = __webpack_require__(19);
var terminal_1 = __webpack_require__(2);
/**
* Author : Nidin Vinayakan
Expand Down Expand Up @@ -13228,7 +13232,9 @@ var compile_target_1 = __webpack_require__(9);
exports.defaultCompilerOptions = {
target: compile_target_1.CompileTarget.WEBASSEMBLY,
silent: true,
logError: true
logError: true,
optimize: true,
longPtr: false
};


Expand Down Expand Up @@ -13262,7 +13268,7 @@ exports.MAX_UINT64_VALUE = Math.pow(2, 64) - 1;
Object.defineProperty(exports, "__esModule", { value: true });
var symbol_1 = __webpack_require__(7);
var node_1 = __webpack_require__(10);
var compiler_1 = __webpack_require__(18);
var compiler_1 = __webpack_require__(19);
function treeShakingMarkAllUsed(node) {
var symbol = node.symbol;
if (symbol != null && !symbol.isUsed() && symbol_1.isFunction(symbol.kind) && symbol.node != null) {
Expand Down Expand Up @@ -13346,7 +13352,7 @@ var scanner_1 = __webpack_require__(14);
var filesystem_1 = __webpack_require__(15);
var terminal_1 = __webpack_require__(2);
var binary_importer_1 = __webpack_require__(33);
var env_1 = __webpack_require__(20);
var env_1 = __webpack_require__(21);
var javascript = __webpack_require__(36);
var path;
if (env_1.isNode) {
Expand Down
2 changes: 1 addition & 1 deletion lib/turboscript.min.js

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion src/compiler/compiler-options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@ export interface CompilerOptions {
target: CompileTarget,
silent: boolean;
logError: boolean;
optimize: boolean;
longPtr: boolean;
}

export const defaultCompilerOptions: CompilerOptions = {
target: CompileTarget.WEBASSEMBLY,
silent: true,
logError: true
logError: true,
optimize: true,
longPtr: false
};
8 changes: 6 additions & 2 deletions src/compiler/compiler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import {tokenize} from "./scanner/scanner";
import {parse} from "./parser/parser";
import {treeShaking} from "./optimizer/shaking";
import {wasmEmit} from "../backends/webassembly/webassembly";
import {Bitness} from "../backends/bitness";
import {Library} from "../library/library";
import {preparse} from "./parser/preparser";
import {CompileTarget} from "./compile-target";
Expand Down Expand Up @@ -36,17 +37,19 @@ export class Compiler {
outputJS: string;
outputCPP: string;
outputH: string;
options: {[key: string]: any};

static mallocRequired: boolean = false;
static debug:boolean = false;
static binaryImports: WasmBinary[];

initialize(target: CompileTarget, outputName: string): void {
initialize(target: CompileTarget, outputName: string, options: {[key: string]: any} = {}): void {
assert(this.log == null);
this.log = new Log();
this.preprocessor = new Preprocessor();
Compiler.binaryImports = [];
this.target = target;
this.options = options;
this.outputName = outputName;
this.librarySource = this.addInput("<native>", Library.get(target));
this.librarySource.isLibrary = true;
Expand Down Expand Up @@ -220,7 +223,8 @@ export class Compiler {
// } else

if (this.target == CompileTarget.WEBASSEMBLY) {
wasmEmit(this);
const { longPtr, optimize } = this.options;
wasmEmit(this, longPtr ? Bitness.x64 : Bitness.x32, optimize);
}

Terminal.timeEnd("emitting");
Expand Down
Loading