# HG changeset patch # User Jaroslav Tulach # Date 1348811537 -7200 # Node ID 5e442890c0736a077aaa6e0ef0356db34a0dbad1 # Parent 256dcf88cd7d8555acd842c2a7aa11ee401e5558 VMT should be in prototype diff -r 256dcf88cd7d -r 5e442890c073 vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Fri Sep 28 07:48:24 2012 +0200 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Fri Sep 28 07:52:17 2012 +0200 @@ -90,11 +90,6 @@ final String className = jc.getName().getInternalName().replace('/', '_'); out.append("\nfunction ").append(className); out.append("() {"); - for (Method m : jc.getMethods()) { - if (!m.isStatic() && !m.isPrivate() && !m.getName().contains("")) { - compiler.generateMethodReference(m); - } - } for (Variable v : jc.getVariables()) { if (!v.isStatic()) { out.append("\n this." + v.getName() + " = 0;"); @@ -110,6 +105,11 @@ out.append("\n").append(className) .append(".prototype = new ").append(sc.getInternalName().replace('/', '_')); } + for (Method m : jc.getMethods()) { + if (!m.isStatic() && !m.isPrivate() && !m.getName().contains("")) { + compiler.generateMethodReference("\n" + className + ".prototype.", m); + } + } for (String init : toInitilize) { out.append("\n").append(init).append("();"); } @@ -152,9 +152,9 @@ out.append("}"); } - private void generateMethodReference(Method m) throws IOException { + private void generateMethodReference(String prefix, Method m) throws IOException { final String name = findMethodName(m); - out.append("\n this.").append(name).append(" = ") + out.append(prefix).append(name).append(" = ") .append(jc.getName().getInternalName().replace('/', '_')) .append('_').append(name).append(";"); }