Shorten the name to register an extension and use configuration object with a generated magic to ensure basic level of consistency.
1.1 --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Mon May 26 14:34:46 2014 +0200
1.2 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Mon May 26 16:20:51 2014 +0200
1.3 @@ -122,7 +122,7 @@
1.4 + " args.unshift(ldCls);\n"
1.5 + " return prevvm.apply(null, args);\n"
1.6 + " };\n"
1.7 - + " global.bck2brwsr.registerExtension = prevvm.registerExtension;\n"
1.8 + + " global.bck2brwsr.register = prevvm.register;\n"
1.9 + "})(this);\n"
1.10 );
1.11 LOG.log(Level.INFO, "Serving bck2brwsr.js", b2b);
2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ClosureWrapper.java Mon May 26 14:34:46 2014 +0200
2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ClosureWrapper.java Mon May 26 16:20:51 2014 +0200
2.3 @@ -158,7 +158,7 @@
2.4 private static final String[] FIXED_EXTERNS = {
2.5 "bck2brwsr",
2.6 "bck2BrwsrThrwrbl",
2.7 - "registerExtension",
2.8 + "register",
2.9 "$class",
2.10 "anno",
2.11 "array",
3.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Mon May 26 14:34:46 2014 +0200
3.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Mon May 26 16:20:51 2014 +0200
3.3 @@ -588,7 +588,11 @@
3.4 + " return loader;\n"
3.5 + " };\n");
3.6 append(
3.7 - " global.bck2brwsr.registerExtension = function(extension) {\n"
3.8 + " global.bck2brwsr.register = function(config, extension) {\n"
3.9 + + " if (!config || config['magic'] !== 'kafíčko') {\n"
3.10 + + " console.log('Will not register: ' + extension);\n"
3.11 + + " return false;\n"
3.12 + + " }\n"
3.13 + " extensions.push(extension);\n"
3.14 + " return null;\n"
3.15 + " };\n");
3.16 @@ -619,7 +623,9 @@
3.17
3.18 @Override
3.19 protected void generatePrologue() throws IOException {
3.20 - append("bck2brwsr.registerExtension(function(exports) {\n"
3.21 + append("bck2brwsr.register({\n"
3.22 + + "'magic' : 'kafíčko'\n"
3.23 + + "}, function(exports) {\n"
3.24 + " var vm = {};\n");
3.25 append(" function link(n) {\n"
3.26 + " return function() {\n"