Skip to content

Commit 6eadd5c

Browse files
committed
Define custom true and false macros in em_js.h and em_asm.h
1 parent 61185c6 commit 6eadd5c

File tree

4 files changed

+24
-5
lines changed

4 files changed

+24
-5
lines changed

emcc.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -969,6 +969,7 @@ def compile_source_file(input_file):
969969
# driver to perform linking which would be big change.
970970
cmd += ['-Xclang', '-split-dwarf-file', '-Xclang', unsuffixed_basename(input_file) + '.dwo']
971971
cmd += ['-Xclang', '-split-dwarf-output', '-Xclang', unsuffixed_basename(input_file) + '.dwo']
972+
print(" ".join(cmd))
972973
shared.check_call(cmd)
973974
if not shared.SKIP_SUBPROCS:
974975
assert os.path.exists(output_file)

system/include/emscripten/em_asm.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,4 +285,14 @@ const char __em_asm_sig_builder<__em_asm_type_tuple<Args...> >::buffer[] = { __e
285285
#define EM_ASM_INT_V(code) EM_ASM_INT(code)
286286
#define EM_ASM_DOUBLE_V(code) EM_ASM_DOUBLE(code)
287287

288+
#if defined(true) && defined(false)
289+
#undef true
290+
#undef false
291+
// These work for both C and javascript.
292+
// In C !!0 ==> 0 and in javascript !!0 ==> false
293+
// In C !!1 ==> 1 and in javascript !!1 ==> true
294+
#define true (!!1)
295+
#define false (!!0)
296+
#endif
297+
288298
#endif // !defined(__cplusplus) && defined(__STRICT_ANSI__)

system/include/emscripten/em_js.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,14 @@
7272

7373
#define EM_ASYNC_JS(ret, name, params, ...) _EM_JS(ret, name, __asyncjs__##name, params, \
7474
"{ return Asyncify.handleAsync(async () => " #__VA_ARGS__ "); }")
75+
76+
77+
#if defined(true) && defined(false)
78+
#undef true
79+
#undef false
80+
// These work for both C and javascript.
81+
// In C !!0 ==> 0 and in javascript !!0 ==> false
82+
// In C !!1 ==> 1 and in javascript !!1 ==> true
83+
#define true (!!1)
84+
#define false (!!0)
85+
#endif

system/lib/libc/musl/include/stdbool.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@
33

44
#ifndef __cplusplus
55

6-
// These work for both C and javascript.
7-
// In C !!0 ==> 0 and in javascript !!0 ==> false
8-
// In C !!1 ==> 1 and in javascript !!1 ==> true
9-
#define true (!!1)
10-
#define false (!!0)
6+
#define true 1
7+
#define false 0
118
#define bool _Bool
129

1310
#endif

0 commit comments

Comments
 (0)