add closure to list of passes the native optimizer can run, so we see all the passes at once, and can minify whitespace when needed, like in the js optimizer
This commit is contained in:
Родитель
fb057d31b1
Коммит
33dc4b7f83
|
@ -168,7 +168,8 @@ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR P
|
|||
# emcc -s RELOOP=1 src.cpp ==> should pass -s to emscripten.py. --typed-arrays is a convenient alias for -s USE_TYPED_ARRAYS
|
||||
for params, test, text in [
|
||||
(['-O2'], lambda generated: 'function intArrayToString' in generated, 'shell has unminified utilities'),
|
||||
(['-O2', '--closure', '1'], lambda generated: 'function intArrayToString' not in generated, 'closure minifies the shell'),
|
||||
(['-O2', '--closure', '1'], lambda generated: 'function intArrayToString' not in generated and ';function' in generated, 'closure minifies the shell, removes whitespace'),
|
||||
(['-O2', '--closure', '1', '-g1'], lambda generated: 'function intArrayToString' not in generated and ';function' not in generated, 'closure minifies the shell, -g1 makes it keep whitespace'),
|
||||
(['-O2'], lambda generated: 'var b=0' in generated and not 'function _main' in generated, 'registerize/minify is run by default in -O2'),
|
||||
(['-O2', '--minify', '0'], lambda generated: 'var b = 0' in generated and not 'function _main' in generated, 'minify is cancelled, but not registerize'),
|
||||
(['-O2', '--js-opts', '0'], lambda generated: 'var b=0' not in generated and 'var b = 0' not in generated and 'function _main' in generated, 'js opts are cancelled'),
|
||||
|
|
|
@ -9,7 +9,7 @@ __rootpath__ = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
|
|||
def path_from_root(*pathelems):
|
||||
return os.path.join(__rootpath__, *pathelems)
|
||||
|
||||
NATIVE_PASSES = set(['asm', 'asmPreciseF32', 'receiveJSON', 'emitJSON', 'eliminate', 'eliminateMemSafe', 'simplifyExpressions', 'simplifyIfs', 'optimizeFrounds', 'registerize', 'registerizeHarder', 'minifyNames', 'minifyLocals', 'minifyWhitespace', 'cleanup', 'asmLastOpts', 'last', 'noop'])
|
||||
NATIVE_PASSES = set(['asm', 'asmPreciseF32', 'receiveJSON', 'emitJSON', 'eliminate', 'eliminateMemSafe', 'simplifyExpressions', 'simplifyIfs', 'optimizeFrounds', 'registerize', 'registerizeHarder', 'minifyNames', 'minifyLocals', 'minifyWhitespace', 'cleanup', 'asmLastOpts', 'last', 'noop', 'closure'])
|
||||
|
||||
JS_OPTIMIZER = path_from_root('tools', 'js-optimizer.js')
|
||||
|
||||
|
|
|
@ -1660,6 +1660,7 @@ class Building:
|
|||
if pretty: args += ['--formatting', 'PRETTY_PRINT']
|
||||
if os.environ.get('EMCC_CLOSURE_ARGS'):
|
||||
args += shlex.split(os.environ.get('EMCC_CLOSURE_ARGS'))
|
||||
logging.debug('closure compiler: ' + ' '.join(args))
|
||||
process = Popen(args, stdout=PIPE, stderr=STDOUT)
|
||||
cc_output = process.communicate()[0]
|
||||
if process.returncode != 0 or not os.path.exists(filename + '.cc.js'):
|
||||
|
|
Загрузка…
Ссылка в новой задаче