1.1 --- a/emul/src/main/java/java/lang/AbstractStringBuilder.java Wed Oct 17 15:59:04 2012 +0200
1.2 +++ b/emul/src/main/java/java/lang/AbstractStringBuilder.java Tue Oct 23 16:50:27 2012 +0200
1.3 @@ -657,7 +657,7 @@
1.4 * @return a reference to this object.
1.5 */
1.6 public AbstractStringBuilder append(float f) {
1.7 - throw new UnsupportedOperationException();
1.8 + return append(Float.toString(f));
1.9 }
1.10
1.11 /**
1.12 @@ -673,7 +673,7 @@
1.13 * @return a reference to this object.
1.14 */
1.15 public AbstractStringBuilder append(double d) {
1.16 - throw new UnsupportedOperationException();
1.17 + return append(Double.toString(d));
1.18 }
1.19
1.20 /**
2.1 --- a/emul/src/main/java/java/lang/Float.java Wed Oct 17 15:59:04 2012 +0200
2.2 +++ b/emul/src/main/java/java/lang/Float.java Tue Oct 23 16:50:27 2012 +0200
2.3 @@ -25,6 +25,8 @@
2.4
2.5 package java.lang;
2.6
2.7 +import org.apidesign.bck2brwsr.core.JavaScriptBody;
2.8 +
2.9 /**
2.10 * The {@code Float} class wraps a value of primitive type
2.11 * {@code float} in an object. An object of type
2.12 @@ -190,6 +192,7 @@
2.13 * @param f the float to be converted.
2.14 * @return a string representation of the argument.
2.15 */
2.16 + @JavaScriptBody(args="d", body="return d.toString();")
2.17 public static String toString(float f) {
2.18 throw new UnsupportedOperationException();
2.19 // return new FloatingDecimal(f).toJavaFormatString();
3.1 --- a/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js Wed Oct 17 15:59:04 2012 +0200
3.2 +++ b/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js Tue Oct 23 16:50:27 2012 +0200
3.3 @@ -292,70 +292,11 @@
3.4 case 15: return stack.pop(); // 176
3.5 }
3.6 }
3.7 +*/
3.8 function java_lang_String_equalsZLjava_lang_Object(arg0,arg1) {
3.9 - var arg2;
3.10 - var arg3;
3.11 - var arg4;
3.12 - var arg5;
3.13 - var arg6;
3.14 - var arg7;
3.15 - var arg8;
3.16 -;
3.17 - var stack = new Array(3);
3.18 - var gt = 0;
3.19 - for(;;) switch(gt) {
3.20 - case 0: stack.push(arg0); // 42
3.21 - case 1: stack.push(arg1); // 43
3.22 - case 2: // 166
3.23 - case 3: // 0
3.24 - case 4: stack.push(2); // 5
3.25 - case 5: stack.push(1); // 4
3.26 - case 6: return stack.pop(); // 172
3.27 - case 7: stack.push(arg1); // 43
3.28 - case 8: stack.push(stack.pop().$instOf_java_lang_String ? 1 : 0); // 193 0 200
3.29 - case 11: if (stack.pop() == 0) { gt = 86; continue; } // 153 0 75
3.30 - case 14: stack.push(arg1); // 43
3.31 - case 15: if(stack[stack.length - 1].$instOf_java_lang_String != 1) throw {}; // 192 0 200
3.32 - case 18: arg2 = stack.pop(); // 77
3.33 - case 19: stack.push(arg0); // 42
3.34 - case 20: stack.push(stack.pop().count); // 180 1 97
3.35 - case 23: arg3 = stack.pop(); // 62
3.36 - case 24: stack.push(arg3); // 29
3.37 - case 25: stack.push(arg2); // 44
3.38 - case 26: stack.push(stack.pop().count); // 180 1 97
3.39 - case 29: if (stack.pop() != stack.pop()) { gt = 86; continue; } // 160 0 57
3.40 - case 32: stack.push(arg0); // 42
3.41 - case 33: stack.push(stack.pop().value); // 180 1 100
3.42 - case 36: arg4 = stack.pop() // 58 4
3.43 - case 38: stack.push(arg2); // 44
3.44 - case 39: stack.push(stack.pop().value); // 180 1 100
3.45 - case 42: arg5 = stack.pop() // 58 5
3.46 - case 44: stack.push(arg0); // 42
3.47 - case 45: stack.push(stack.pop().offset); // 180 1 99
3.48 - case 48: arg6 = stack.pop() // 54 6
3.49 - case 50: stack.push(arg2); // 44
3.50 - case 51: stack.push(stack.pop().offset); // 180 1 99
3.51 - case 54: arg7 = stack.pop() // 54 7
3.52 - case 56: stack.push(arg3); // 29
3.53 - case 57: arg3 += 255; // 132 3 255
3.54 - case 60: if (stack.pop() == 0) { gt = 84; continue; } // 153 0 24
3.55 - case 63: stack.push(arg4); // 25 4
3.56 - case 65: stack.push(arg6); // 21 6
3.57 - case 67: arg6++; // 132 6 1
3.58 - case 70: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
3.59 - case 71: stack.push(arg5); // 25 5
3.60 - case 73: stack.push(arg7); // 21 7
3.61 - case 75: arg7++; // 132 7 1
3.62 - case 78: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
3.63 - case 79: if (stack.pop() == stack.pop()) { gt = 56; continue; } // 159 255 233
3.64 - case 82: stack.push(0); // 3
3.65 - case 83: return stack.pop(); // 172
3.66 - case 84: stack.push(1); // 4
3.67 - case 85: return stack.pop(); // 172
3.68 - case 86: stack.push(0); // 3
3.69 - case 87: return stack.pop(); // 172
3.70 - }
3.71 + return arg0.toString() === arg1.toString();
3.72 }
3.73 +/*
3.74 function java_lang_String_contentEqualsZLjava_lang_StringBuffer(arg0,arg1) {
3.75 var arg2;
3.76 var arg3;
3.77 @@ -1419,75 +1360,14 @@
3.78 case 150: return stack.pop(); // 172
3.79 }
3.80 }
3.81 +*/
3.82 function java_lang_String_substringLjava_lang_StringI(arg0,arg1) {
3.83 - var arg2;
3.84 -;
3.85 - var stack = new Array(3);
3.86 - var gt = 0;
3.87 - for(;;) switch(gt) {
3.88 - case 0: stack.push(arg0); // 42
3.89 - case 1: stack.push(arg1); // 27
3.90 - case 2: stack.push(arg0); // 42
3.91 - case 3: stack.push(stack.pop().count); // 180 1 97
3.92 - case 6: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.substringLjava_lang_StringII(self, v0, v1)); } // 182 1 147
3.93 - case 9: return stack.pop(); // 176
3.94 - }
3.95 + return arg0.toString().substring(arg1);
3.96 }
3.97 function java_lang_String_substringLjava_lang_StringII(arg0,arg1,arg2) {
3.98 - var arg3;
3.99 -;
3.100 - var stack = new Array(5);
3.101 - var gt = 0;
3.102 - for(;;) switch(gt) {
3.103 - case 0: stack.push(arg1); // 27
3.104 - case 1: if (stack.pop() >= 0) { gt = 13; continue; } // 156 0 12
3.105 - case 4: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
3.106 - case 7: stack.push(stack[stack.length - 1]); // 89
3.107 - case 8: stack.push(arg1); // 27
3.108 - case 9: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
3.109 - case 12: // 191
3.110 - case 13: stack.push(arg2); // 28
3.111 - case 14: stack.push(arg0); // 42
3.112 - case 15: stack.push(stack.pop().count); // 180 1 97
3.113 - case 18: if (stack.pop() >= stack.pop()) { gt = 30; continue; } // 164 0 12
3.114 - case 21: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
3.115 - case 24: stack.push(stack[stack.length - 1]); // 89
3.116 - case 25: stack.push(arg2); // 28
3.117 - case 26: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
3.118 - case 29: // 191
3.119 - case 30: stack.push(arg1); // 27
3.120 - case 31: stack.push(arg2); // 28
3.121 - case 32: if (stack.pop() >= stack.pop()) { gt = 46; continue; } // 164 0 14
3.122 - case 35: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
3.123 - case 38: stack.push(stack[stack.length - 1]); // 89
3.124 - case 39: stack.push(arg2); // 28
3.125 - case 40: stack.push(arg1); // 27
3.126 - case 41: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
3.127 - case 42: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
3.128 - case 45: // 191
3.129 - case 46: stack.push(arg1); // 27
3.130 - case 47: if (stack.pop() != 0) { gt = 62; continue; } // 154 0 15
3.131 - case 50: stack.push(arg2); // 28
3.132 - case 51: stack.push(arg0); // 42
3.133 - case 52: stack.push(stack.pop().count); // 180 1 97
3.134 - case 55: if (stack.pop() != stack.pop()) { gt = 62; continue; } // 160 0 7
3.135 - case 58: stack.push(arg0); // 42
3.136 - case 59: gt = 82; continue; // 167 0 23
3.137 - case 62: stack.push(new java_lang_String); // 187 0 200
3.138 - case 65: stack.push(stack[stack.length - 1]); // 89
3.139 - case 66: stack.push(arg0); // 42
3.140 - case 67: stack.push(stack.pop().offset); // 180 1 99
3.141 - case 70: stack.push(arg1); // 27
3.142 - case 71: stack.push(stack.pop() + stack.pop()); // 96
3.143 - case 72: stack.push(arg2); // 28
3.144 - case 73: stack.push(arg1); // 27
3.145 - case 74: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
3.146 - case 75: stack.push(arg0); // 42
3.147 - case 76: stack.push(stack.pop().value); // 180 1 100
3.148 - case 79: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); java_lang_String_consVIIAC(stack.pop(), v0, v1, v2); } // 183 1 137
3.149 - case 82: return stack.pop(); // 176
3.150 - }
3.151 + return arg0.toString().substring(arg1, arg2);
3.152 }
3.153 +/*
3.154 function java_lang_String_subSequenceLjava_lang_CharSequenceII(arg0,arg1,arg2) {
3.155 var arg3;
3.156 ;
3.157 @@ -2592,6 +2472,9 @@
3.158 String.prototype.isEmptyZ = java_lang_String_isEmptyZ;
3.159 String.prototype.getCharsVIIACI = java_lang_String_getCharsVIIACAI;
3.160 String.prototype.toStringLjava_lang_String = java_lang_String_toStringLjava_lang_String;
3.161 +String.prototype.substringLjava_lang_StringI = java_lang_String_substringLjava_lang_StringI;
3.162 +String.prototype.substringLjava_lang_StringII = java_lang_String_substringLjava_lang_StringII;
3.163 +String.prototype.equalsZLjava_lang_Object = java_lang_String_equalsZLjava_lang_Object;
3.164 String.prototype.$instOf_java_lang_String = true;
3.165 String.prototype.$instOf_java_io_Serializable = true;
3.166 String.prototype.$instOf_java_lang_Comparable = true;
4.1 --- a/htmlpage/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Input.java Wed Oct 17 15:59:04 2012 +0200
4.2 +++ b/htmlpage/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Input.java Tue Oct 23 16:50:27 2012 +0200
4.3 @@ -37,4 +37,8 @@
4.4 public final String getValue() {
4.5 return (String)getAttribute(this, "value");
4.6 }
4.7 +
4.8 + public final void setValue(String txt) {
4.9 + setAttribute(this, "value", txt);
4.10 + }
4.11 }
5.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Wed Oct 17 15:59:04 2012 +0200
5.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Tue Oct 23 16:50:27 2012 +0200
5.3 @@ -35,6 +35,10 @@
5.4 return HELLO.charAt(indx);
5.5 }
5.6
5.7 + public static boolean equalToHello(int from, int to) {
5.8 + return "Hello".equals(HELLO.substring(from, to));
5.9 + }
5.10 +
5.11 public static String fromChars(char a, char b, char c) {
5.12 char[] arr = { a, b, c };
5.13 return new String(arr).toString();
6.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Wed Oct 17 15:59:04 2012 +0200
6.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Tue Oct 23 16:50:27 2012 +0200
6.3 @@ -62,6 +62,14 @@
6.4 "Hello World!1Ahoj"
6.5 );
6.6 }
6.7 +
6.8 + public void equalsAndSubstring() throws Exception {
6.9 + assertExec(
6.10 + "Composes are OK",
6.11 + "org_apidesign_vm4brwsr_StringSample_equalToHelloZII",
6.12 + Double.valueOf(1), 0, 5
6.13 + );
6.14 + }
6.15
6.16 private static CharSequence codeSeq;
6.17 private static Invocable code;