summaryrefslogtreecommitdiff
path: root/platform/javascript
diff options
context:
space:
mode:
Diffstat (limited to 'platform/javascript')
-rw-r--r--platform/javascript/SCsub6
-rw-r--r--platform/javascript/detect.py31
-rw-r--r--platform/javascript/power_javascript.cpp2
-rw-r--r--platform/javascript/power_javascript.h2
4 files changed, 19 insertions, 22 deletions
diff --git a/platform/javascript/SCsub b/platform/javascript/SCsub
index bd7b0c304d..02ff2090f9 100644
--- a/platform/javascript/SCsub
+++ b/platform/javascript/SCsub
@@ -2,15 +2,13 @@
Import('env')
-env.Tool('textfile')
-env.Tool('zip')
-
javascript_files = [
"os_javascript.cpp",
"audio_driver_javascript.cpp",
"javascript_main.cpp",
"audio_server_javascript.cpp",
- "javascript_eval.cpp"
+ "power_javascript.cpp",
+ "javascript_eval.cpp",
]
env_javascript = env.Clone()
diff --git a/platform/javascript/detect.py b/platform/javascript/detect.py
index 799b550899..f82eae9ff2 100644
--- a/platform/javascript/detect.py
+++ b/platform/javascript/detect.py
@@ -28,14 +28,13 @@ def get_flags():
return [
('tools', 'no'),
('module_etc1_enabled', 'no'),
- ('module_mpc_enabled', 'no'),
('module_theora_enabled', 'no'),
]
def create(env):
# remove Windows' .exe suffix
- return env.Clone(PROGSUFFIX='')
+ return env.Clone(tools=['textfile', 'zip'], PROGSUFFIX='')
def escape_sources_backslashes(target, source, env, for_signature):
@@ -70,13 +69,16 @@ def configure(env):
env['LIBSUFFIX'] = '.bc'
if (env["target"] == "release"):
- env.Append(CCFLAGS=['-O2'])
+ env.Append(CCFLAGS=['-O3'])
+ env.Append(LINKFLAGS=['-O3'])
elif (env["target"] == "release_debug"):
env.Append(CCFLAGS=['-O2', '-DDEBUG_ENABLED'])
+ env.Append(LINKFLAGS=['-O2'])
+ # retain function names at the cost of file size, for backtraces and profiling
+ env.Append(LINKFLAGS=['--profiling-funcs'])
elif (env["target"] == "debug"):
- env.Append(CCFLAGS=['-D_DEBUG', '-Wall', '-O2', '-DDEBUG_ENABLED'])
- #env.Append(CCFLAGS=['-D_DEBUG', '-Wall', '-g4', '-DDEBUG_ENABLED'])
- env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC'])
+ env.Append(CCFLAGS=['-O1', '-D_DEBUG', '-Wall', '-g', '-DDEBUG_ENABLED'])
+ env.Append(LINKFLAGS=['-O1', '-g'])
# TODO: Move that to opus module's config
if("module_opus_enabled" in env and env["module_opus_enabled"] != "no"):
@@ -84,28 +86,23 @@ def configure(env):
# These flags help keep the file size down
env.Append(CPPFLAGS=["-fno-exceptions", '-DNO_SAFE_CAST', '-fno-rtti'])
- env.Append(CPPFLAGS=['-DJAVASCRIPT_ENABLED', '-DUNIX_ENABLED', '-DPTHREAD_NO_RENAME', '-DNO_FCNTL', '-DMPC_FIXED_POINT', '-DTYPED_METHOD_BIND', '-DNO_THREADS'])
+ env.Append(CPPFLAGS=['-DJAVASCRIPT_ENABLED', '-DUNIX_ENABLED', '-DPTHREAD_NO_RENAME', '-DTYPED_METHOD_BIND', '-DNO_THREADS'])
env.Append(CPPFLAGS=['-DGLES3_ENABLED'])
+ env.Append(LINKFLAGS=['-s', 'USE_WEBGL2=1'])
- if env['wasm'] == 'yes':
+ if (env['wasm'] == 'yes'):
env.Append(LINKFLAGS=['-s', 'BINARYEN=1'])
- # Maximum memory size is baked into the WebAssembly binary during
- # compilation, so we need to enable memory growth to allow setting
- # TOTAL_MEMORY at runtime. The value set at runtime must be higher than
- # what is set during compilation, check TOTAL_MEMORY in Emscripten's
- # src/settings.js for the default.
+ # In contrast to asm.js, enabling memory growth on WebAssembly has no
+ # major performance impact, and causes only a negligible increase in
+ # memory size.
env.Append(LINKFLAGS=['-s', 'ALLOW_MEMORY_GROWTH=1'])
env.extra_suffix = '.webassembly' + env.extra_suffix
else:
- env.Append(CPPFLAGS=['-s', 'ASM_JS=1'])
env.Append(LINKFLAGS=['-s', 'ASM_JS=1'])
env.Append(LINKFLAGS=['--separate-asm'])
if env['javascript_eval'] == 'yes':
env.Append(CPPFLAGS=['-DJAVASCRIPT_EVAL_ENABLED'])
- env.Append(LINKFLAGS=['-O2'])
- env.Append(LINKFLAGS=['-s', 'USE_WEBGL2=1'])
- # env.Append(LINKFLAGS=['-g4'])
import methods
diff --git a/platform/javascript/power_javascript.cpp b/platform/javascript/power_javascript.cpp
index d734999917..24158a34fe 100644
--- a/platform/javascript/power_javascript.cpp
+++ b/platform/javascript/power_javascript.cpp
@@ -28,7 +28,7 @@
/*************************************************************************/
#include "power_javascript.h"
-#include "core/error_macros.h"
+#include "error_macros.h"
bool PowerJavascript::UpdatePowerInfo() {
// TODO Javascript implementation
diff --git a/platform/javascript/power_javascript.h b/platform/javascript/power_javascript.h
index 53c702b98e..78a896c430 100644
--- a/platform/javascript/power_javascript.h
+++ b/platform/javascript/power_javascript.h
@@ -30,6 +30,8 @@
#ifndef PLATFORM_JAVASCRIPT_POWER_JAVASCRIPT_H_
#define PLATFORM_JAVASCRIPT_POWER_JAVASCRIPT_H_
+#include "os/power.h"
+
class PowerJavascript {
private:
int nsecs_left;