aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-07-30 15:53:47 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-07-30 15:53:47 -0700
commit55626711df57e3f675935fb816022da242d023a6 (patch)
tree376d4c5a4ed180e259f139de7269c1e57274eff7
parent7d395b63624edb19717affac24345c8ccd69e355 (diff)
disable asm in embind mode, and add a test for what embind cannot do in asm mode yet; issue #1447
-rwxr-xr-xemcc4
-rwxr-xr-xtests/runner.py20
2 files changed, 24 insertions, 0 deletions
diff --git a/emcc b/emcc
index 91b109b6..46dca960 100755
--- a/emcc
+++ b/emcc
@@ -1030,6 +1030,10 @@ try:
exec('shared.Settings.' + key + ' = ' + value)
# Apply effects from settings
+ if bind and shared.Settings.ASM_JS:
+ logging.warning('disabling asm.js since embind is not ready for it yet')
+ shared.Settings.ASM_JS = 0
+
if shared.Settings.ASM_JS:
assert opt_level >= 1, 'asm.js requires -O1 or above'
diff --git a/tests/runner.py b/tests/runner.py
index 47e18ed7..976772ce 100755
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -9332,6 +9332,26 @@ def process(filename):
'''
self.do_run(src, 'abs(-10): 10\nabs(-11): 11');
+ def test_embind_2(self):
+ if self.emcc_args is None: return self.skip('requires emcc')
+ Building.COMPILER_TEST_OPTS += ['--bind', '--post-js', 'post.js']
+ open('post.js', 'w').write('''
+ Module.print('lerp ' + Module.lerp(1, 2, 0.66) + '.');
+ ''')
+ src = r'''
+ #include <stdio.h>
+ #include <SDL/SDL.h>
+ #include <emscripten/bind.h>
+ using namespace emscripten;
+ float lerp(float a, float b, float t) {
+ return (1 - t) * a + t * b;
+ }
+ EMSCRIPTEN_BINDINGS(my_module) {
+ function("lerp", &lerp);
+ }
+ '''
+ self.do_run(src, 'lerp 1.66');
+
def test_scriptaclass(self):
if self.emcc_args is None: return self.skip('requires emcc')