| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 1 {%- if args["module"] -%} | 1 {%- if args["module"] -%} |
| 2 if (typeof require == "undefined") | 2 if (typeof require != "function") |
|
kzar
2017/04/01 01:32:57
As discussed in IRC this is safer, since if a webp
Sebastian Noack
2017/04/01 10:02:56
Wow, I never noticed that named elements become au
| |
| 3 { | 3 { |
| 4 window.require = function(module) | 4 var require = function(module) |
|
Sebastian Noack
2017/03/31 14:50:45
This will still assume that there is a global "win
kzar
2017/03/31 15:16:54
Perhaps it matters for Firefox, can't harm to fix
kzar
2017/03/31 15:27:37
(gecko-webext devbuild seems to run OK with these
| |
| 5 { | 5 { |
| 6 if (!(module in require.scopes)) | 6 if (!(module in require.scopes)) |
| 7 { | 7 { |
| 8 let scope = {exports: {}}; | 8 let scope = {exports: {}}; |
| 9 require.scopes[module] = require.modules[module](scope, scope.exports); | 9 require.scopes[module] = require.modules[module](scope, scope.exports); |
| 10 } | 10 } |
| 11 return require.scopes[module]; | 11 return require.scopes[module]; |
| 12 } | 12 }; |
| 13 require.modules = Object.create(null); | 13 require.modules = Object.create(null); |
| 14 require.scopes = Object.create(null); | 14 require.scopes = Object.create(null); |
| 15 } | 15 } |
| 16 | 16 |
| 17 {% if args["injectinfomodule"] %} | |
| 17 require.modules["info"] = function(module, exports) | 18 require.modules["info"] = function(module, exports) |
|
Sebastian Noack
2017/03/31 14:50:45
The "info" module should only be added for the bac
kzar
2017/03/31 15:16:54
Done.
| |
| 18 { | 19 { |
| 19 {% if type == "gecko-webext" %} | 20 {% if type == "gecko-webext" %} |
| 20 {% include "geckoInfo.js.tmpl" %} | 21 {% include "geckoInfo.js.tmpl" %} |
|
Sebastian Noack
2017/03/31 14:50:45
Why not just inline them here? Those templates are
kzar
2017/03/31 15:16:54
I prefer them as separate files, I think it's easi
| |
| 21 {% elif type == "chrome" or type == "edge" %} | 22 {% elif type == "chrome" or type == "edge" %} |
| 22 {% include "chromeInfo.js.tmpl" %} | 23 {% include "chromeInfo.js.tmpl" %} |
| 23 {% endif %} | 24 {% endif %} |
| 24 return module.exports; | 25 return module.exports; |
| 25 }; | 26 }; |
| 27 {% endif %} | |
| 26 | 28 |
| 27 {%- for module_name, script in modules -%} | 29 {%- for module_name, script in modules -%} |
| 28 require.modules[{{ module_name|json }}] = function(module, exports) | 30 require.modules[{{ module_name|json }}] = function(module, exports) |
| 29 { | 31 { |
| 30 {{ script }} | 32 {{ script }} |
| 31 return module.exports; | 33 return module.exports; |
| 32 }; | 34 }; |
| 33 | 35 |
| 34 {% endfor -%} | 36 {% endfor -%} |
| 35 {%- set modules = dict(modules) -%} | 37 {%- set modules = dict(modules) -%} |
| 36 {%- for module_name in args["autoload"] -%} | 38 {%- for module_name in args["autoload"] -%} |
| 37 {%- if module_name in modules -%} | 39 {%- if module_name in modules -%} |
| 38 require({{ module_name|json }}); | 40 require({{ module_name|json }}); |
| 39 {% endif %} | 41 {% endif %} |
| 40 {%- endfor -%} | 42 {%- endfor -%} |
| 41 {%- else -%} | 43 {%- else -%} |
| 42 {%- for module_name, script in modules -%} | 44 {%- for module_name, script in modules -%} |
| 43 {{ script }} | 45 {{ script }} |
| 44 {% endfor -%} | 46 {% endfor -%} |
| 45 {%- endif -%} | 47 {%- endif -%} |
| LEFT | RIGHT |