~ubuntu-branches/ubuntu/vivid/emscripten/vivid

« back to all changes in this revision

Viewing changes to tools/js_optimizer.py

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-06-11 15:45:24 UTC
  • mfrom: (1.2.1) (2.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130611154524-rppb3w6tixlegv4n
Tags: 1.4.7~20130611~a1eb425-1
* New snapshot release
* Upload to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
129
129
  end_funcs_marker = '// EMSCRIPTEN_END_FUNCS\n'
130
130
  start_funcs = js.find(start_funcs_marker)
131
131
  end_funcs = js.rfind(end_funcs_marker)
132
 
  assert (start_funcs >= 0) == (end_funcs >= 0) == (not not suffix)
 
132
  #assert (start_funcs >= 0) == (end_funcs >= 0) == (not not suffix)
133
133
  asm_registerize = 'asm' in passes and 'registerize' in passes
134
134
  if asm_registerize:
135
135
    start_asm_marker = '// EMSCRIPTEN_START_ASM\n'
265
265
 
266
266
  for filename in filenames: temp_files.note(filename)
267
267
 
 
268
  if 'closure' in passes:
 
269
    # run closure on the shell code, everything but what we js-optimize
 
270
    start_asm = '// EMSCRIPTEN_START_ASM\n'
 
271
    end_asm = '// EMSCRIPTEN_END_ASM\n'
 
272
    closure_sep = 'wakaUnknownBefore(); var asm=wakaUnknownAfter(global,env,buffer)\n'
 
273
 
 
274
    closuree = temp_files.get('.closure.js').name
 
275
    c = open(closuree, 'w')
 
276
    pre_1, pre_2 = pre.split(start_asm)
 
277
    post_1, post_2 = post.split(end_asm)
 
278
    c.write(pre_1)
 
279
    c.write(closure_sep)
 
280
    c.write(post_2)
 
281
    c.close()
 
282
    closured = shared.Building.closure_compiler(closuree, pretty='compress' not in passes)
 
283
    temp_files.note(closured)
 
284
    coutput = open(closured).read()
 
285
    coutput = coutput.replace('wakaUnknownBefore();', '')
 
286
    after = 'wakaUnknownAfter'
 
287
    start = coutput.find(after)
 
288
    end = coutput.find(')', start)
 
289
    pre = coutput[:start] + '(function(global,env,buffer) {\n' + start_asm + pre_2[pre_2.find('{')+1:]
 
290
    post = post_1[:post_1.rfind('}')] + '\n' + end_asm + '\n})' + coutput[end+1:]
 
291
 
268
292
  filename += '.jo.js'
269
293
  f = open(filename, 'w')
270
294
  f.write(pre);