1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/Bck2Brwsr.java Thu Apr 25 16:17:48 2013 +0200
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/Bck2Brwsr.java Fri Apr 26 18:48:34 2013 +0200
1.3 @@ -57,11 +57,13 @@
1.4 private final ObfuscationLevel level;
1.5 private final StringArray classes;
1.6 private final Resources res;
1.7 + private final boolean extension;
1.8
1.9 - private Bck2Brwsr(ObfuscationLevel level, StringArray classes, Resources resources) {
1.10 + private Bck2Brwsr(ObfuscationLevel level, StringArray classes, Resources resources, boolean extension) {
1.11 this.level = level;
1.12 this.classes = classes;
1.13 this.res = resources;
1.14 + this.extension = extension;
1.15 }
1.16
1.17 /** Helper method to generate virtual machine from bytes served by a <code>resources</code>
1.18 @@ -98,8 +100,10 @@
1.19 * @since 0.5
1.20 */
1.21 public static Bck2Brwsr newCompiler() {
1.22 - StringArray arr = StringArray.asList(VM.class.getName().replace('.', '/'));
1.23 - return new Bck2Brwsr(ObfuscationLevel.NONE, arr, null);
1.24 + StringArray arr = StringArray.asList(
1.25 + Class.class.getName().replace('.', '/'),
1.26 + VM.class.getName().replace('.', '/'));
1.27 + return new Bck2Brwsr(ObfuscationLevel.NONE, arr, null, false);
1.28 }
1.29
1.30 /** Creates new instance of the Bck2Brwsr compiler which inherits
1.31 @@ -114,7 +118,8 @@
1.32 if (classes.length == 0) {
1.33 return this;
1.34 } else {
1.35 - return new Bck2Brwsr(level, this.classes.addAndNew(classes), res);
1.36 + return new Bck2Brwsr(level, this.classes.addAndNew(classes), res,
1.37 + extension);
1.38 }
1.39 }
1.40
1.41 @@ -127,7 +132,7 @@
1.42 * @since 0.5
1.43 */
1.44 public Bck2Brwsr obfuscation(ObfuscationLevel level) {
1.45 - return new Bck2Brwsr(level, classes, res);
1.46 + return new Bck2Brwsr(level, classes, res, extension);
1.47 }
1.48
1.49 /** A way to change the provider of additional resources (classes) for the
1.50 @@ -139,7 +144,11 @@
1.51 * @since 0.5
1.52 */
1.53 public Bck2Brwsr resources(Resources res) {
1.54 - return new Bck2Brwsr(level, classes, res);
1.55 + return new Bck2Brwsr(level, classes, res, extension);
1.56 + }
1.57 +
1.58 + public Bck2Brwsr extension(boolean extension) {
1.59 + return new Bck2Brwsr(level, classes, res, extension);
1.60 }
1.61
1.62 /** A way to change the provider of additional resources (classes) for the
1.63 @@ -162,19 +171,23 @@
1.64 */
1.65 public void generate(Appendable out) throws IOException {
1.66 Resources r = res != null ? res : new LdrRsrcs(Bck2Brwsr.class.getClassLoader());
1.67 - if (level != ObfuscationLevel.NONE) {
1.68 - try {
1.69 - ClosureWrapper.produceTo(out, level, r, classes);
1.70 - return;
1.71 - } catch (IOException ex) {
1.72 - throw ex;
1.73 - } catch (Throwable ex) {
1.74 - out.append("/* Failed to obfuscate: " + ex.getMessage()
1.75 - + " */\n");
1.76 - }
1.77 +// if (level != ObfuscationLevel.NONE) {
1.78 +// try {
1.79 +// ClosureWrapper.produceTo(out, level, r, classes);
1.80 +// return;
1.81 +// } catch (IOException ex) {
1.82 +// throw ex;
1.83 +// } catch (Throwable ex) {
1.84 +// out.append("/* Failed to obfuscate: " + ex.getMessage()
1.85 +// + " */\n");
1.86 +// }
1.87 +// }
1.88 +
1.89 + if (extension) {
1.90 + VM.compileExtension(r, out, classes);
1.91 + } else {
1.92 + VM.compileStandalone(r, out, classes);
1.93 }
1.94 -
1.95 - VM.compile(r, out, classes);
1.96 }
1.97
1.98 /** Provider of resources (classes and other files). The
1.99 @@ -193,7 +206,5 @@
1.100 * or the file cannot be found
1.101 */
1.102 public InputStream get(String resource) throws IOException;
1.103 -
1.104 - public String getModule(String resource) throws IOException;
1.105 }
1.106 }