aboutsummaryrefslogtreecommitdiff
path: root/src/settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings.js')
-rw-r--r--src/settings.js25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/settings.js b/src/settings.js
index bb4d0f27..16c28529 100644
--- a/src/settings.js
+++ b/src/settings.js
@@ -26,6 +26,7 @@ var ASSERTIONS = 1; // Whether we should add runtime assertions, for example to
// exceed it's size, whether all allocations (stack and static) are
// of positive size, etc., whether we should throw if we encounter a bad __label__, i.e.,
// if code flow runs into a fault
+var VERBOSE = 0; // When set to 1, will generate more verbose output during compilation.
var INVOKE_RUN = 1; // Whether we will call run(). Disable if you embed the generated
// code in your own, and will call run() yourself at the right time
@@ -67,6 +68,8 @@ var DOUBLE_MODE = 1; // How to load and store 64-bit doubles. Without typed arra
// then load it aligned, and that load-store will make JS engines alter it if it is being
// stored to a typed array for security reasons. That will 'fix' the number from being a
// NaN or an infinite number.
+var PRECISE_I64_MATH = 1; // If enabled, i64 addition etc. is emulated - which is slow but precise. If disabled,
+ // we use the 'double trick' which is fast but incurs rounding at high values.
var CLOSURE_ANNOTATIONS = 0; // If set, the generated code will be annotated for the closure
// compiler. This potentially lets closure optimize the code better.
@@ -98,7 +101,14 @@ var SAFE_HEAP_LOG = 0; // Log out all SAFE_HEAP operations
var LABEL_DEBUG = 0; // Print out labels and functions as we enter them
var EXCEPTION_DEBUG = 1; // Print out exceptions in emscriptened code
-var LIBRARY_DEBUG = 0; // Print out when we enter a library call (library*.js)
+
+var LIBRARY_DEBUG = 0; // Print out when we enter a library call (library*.js). You can also unset
+ // Runtime.debug at runtime for logging to cease, and can set it when you
+ // want it back. A simple way to set it in C++ is
+ // emscripten_run_script("Runtime.debug = ...;");
+var GL_DEBUG = 0; // Print out all calls into WebGL. As with LIBRARY_DEBUG, you can set a runtime
+ // option, in this case GL.debug.
+
var DISABLE_EXCEPTION_CATCHING = 0; // Disables generating code to actually catch exceptions. If the code you
// are compiling does not actually rely on catching exceptions (but the
// compiler generates code for it, maybe because of stdlibc++ stuff),
@@ -136,6 +146,9 @@ var CORRECT_OVERFLOWS = 1; // Experimental code that tries to prevent unexpected
var CORRECT_ROUNDINGS = 1; // C rounds to 0 (-5.5 to -5, +5.5 to 5), while JS has no direct way to do that:
// Math.floor is to negative, ceil to positive. With CORRECT_ROUNDINGS,
// we will do slow but correct C rounding operations.
+var FS_LOG = 0; // Log all FS operations. This is especially helpful when you're porting
+ // a new project and want to see a list of file system operations happening
+ // so that you can create a virtual file system with all of the required files.
var PGO = 0; // Profile-guided optimization.
// When run with the CHECK_* options, will not fail on errors. Instead, will
@@ -201,6 +214,16 @@ var FAKE_X86_FP80 = 1; // Replaces x86_fp80 with double. This loses precision. I
// if you can, to get the original source code to build without x86_fp80
// (which is nonportable anyhow).
+var GC_SUPPORT = 1; // Enables GC, see gc.h (this does not add overhead, so it is on by default)
+
+var WARN_ON_UNDEFINED_SYMBOLS = 0; // If set to 1, we will warn on any undefined symbols that
+ // are not resolved by the library_*.js files. We by default
+ // do not warn because (1) it is normal in large projects to
+ // not implement everything, when you know what is not
+ // going to actually be called (and don't want to mess with
+ // the existing buildsystem), and (2) functions might be
+ // implemented later on, say in --pre-js
+
// Compiler debugging options
var DEBUG_TAGS_SHOWING = [];
// Some useful items: