do not emit empty postsets from js compiler for fastcomp output

This commit is contained in:
Alon Zakai 2013-11-29 12:10:27 -08:00
Родитель 74304761ff
Коммит 20e48678c8
2 изменённых файлов: 8 добавлений и 14 удалений

Просмотреть файл

@ -862,14 +862,6 @@ def emscript_fast(infile, settings, outfile, libraries=[], compiler_engine=None,
if key in all_exported_functions or export_all or (export_bindings and key.startswith('_emscripten_bind')):
exported_implemented_functions.add(key)
if settings.get('ASM_JS'):
# move postsets into the asm module
class PostSets: js = ''
def handle_post_sets(m):
PostSets.js = m.group(0)
return '\n'
pre = re.sub(r'function runPostSets[^}]+}', handle_post_sets, pre)
#if DEBUG: outfile.write('// pre\n')
outfile.write(pre)
pre = None
@ -1105,7 +1097,7 @@ function setTempRet%d(value) {
value = value|0;
tempRet%d = value;
}
''' % (i, i) for i in range(10)])] + [PostSets.js + '\n'] + funcs_js + ['''
''' % (i, i) for i in range(10)])] + funcs_js + ['''
%s
return %s;

Просмотреть файл

@ -1747,11 +1747,13 @@ function JSify(data, functionsOnly, givenFunctions) {
print('/* no memory initializer */'); // test purposes
}
// Define postsets. These will be run in ATINIT, right before global initializers (which might need the postsets). We cannot
// run them now because the memory initializer might not have been applied yet.
print('function runPostSets() {\n');
print(itemsDict.GlobalVariablePostSet.map(function(item) { return item.JS }).join('\n'));
print('}\n');
if (phase !== 'glue') {
// Define postsets. These will be run in ATINIT, right before global initializers (which might need the postsets). We cannot
// run them now because the memory initializer might not have been applied yet.
print('function runPostSets() {\n');
print(itemsDict.GlobalVariablePostSet.map(function(item) { return item.JS }).join('\n'));
print('}\n');
}
if (USE_TYPED_ARRAYS == 2) {
if (!BUILD_AS_SHARED_LIB && !SIDE_MODULE) {