mirror of
https://github.com/Eaglercraft-TeaVM-Fork/eagler-teavm.git
synced 2024-12-22 16:14:10 -08:00
Further improvements in WASM target
This commit is contained in:
parent
5479d24a21
commit
06a96911a1
|
@ -20,16 +20,12 @@ import org.teavm.platform.Platform;
|
||||||
import org.teavm.platform.metadata.MetadataProvider;
|
import org.teavm.platform.metadata.MetadataProvider;
|
||||||
import org.teavm.platform.metadata.StringResource;
|
import org.teavm.platform.metadata.StringResource;
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Alexey Andreev
|
|
||||||
*/
|
|
||||||
public class TCharacter extends TObject implements TComparable<TCharacter> {
|
public class TCharacter extends TObject implements TComparable<TCharacter> {
|
||||||
public static final int MIN_RADIX = 2;
|
public static final int MIN_RADIX = 2;
|
||||||
public static final int MAX_RADIX = 36;
|
public static final int MAX_RADIX = 36;
|
||||||
public static final char MIN_VALUE = '\0';
|
public static final char MIN_VALUE = '\0';
|
||||||
public static final char MAX_VALUE = '\uFFFF';
|
public static final char MAX_VALUE = '\uFFFF';
|
||||||
public static final TClass<TCharacter> TYPE = TClass.charClass();
|
public static final Class<Character> TYPE = char.class;
|
||||||
public static final byte UNASSIGNED = 0;
|
public static final byte UNASSIGNED = 0;
|
||||||
public static final byte UPPERCASE_LETTER = 1;
|
public static final byte UPPERCASE_LETTER = 1;
|
||||||
public static final byte LOWERCASE_LETTER = 2;
|
public static final byte LOWERCASE_LETTER = 2;
|
||||||
|
|
|
@ -113,11 +113,6 @@ public class TClass<T> extends TObject implements TAnnotatedElement {
|
||||||
return (TClass<TBoolean>) getClass(Platform.getPrimitives().getBooleanClass());
|
return (TClass<TBoolean>) getClass(Platform.getPrimitives().getBooleanClass());
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
static TClass<TCharacter> charClass() {
|
|
||||||
return (TClass<TCharacter>) getClass(Platform.getPrimitives().getCharClass());
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
static TClass<TByte> byteClass() {
|
static TClass<TByte> byteClass() {
|
||||||
return (TClass<TByte>) getClass(Platform.getPrimitives().getByteClass());
|
return (TClass<TByte>) getClass(Platform.getPrimitives().getByteClass());
|
||||||
|
|
|
@ -26,39 +26,35 @@ public final class Example {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
int a = 0;
|
int a = 0;
|
||||||
int b = 1;
|
int b = 1;
|
||||||
|
println("Fibonacci numbers:");
|
||||||
for (int i = 0; i < 30; ++i) {
|
for (int i = 0; i < 30; ++i) {
|
||||||
int c = a + b;
|
int c = a + b;
|
||||||
a = b;
|
a = b;
|
||||||
b = c;
|
b = c;
|
||||||
WasmRuntime.print(a);
|
println(String.valueOf(a));
|
||||||
}
|
}
|
||||||
WasmRuntime.print(new A(2).getValue() + new A(3).getValue());
|
|
||||||
|
println("A(2) + A(3) = " + new A(2).getValue() + new A(3).getValue());
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
WasmRuntime.print(instance(i).foo());
|
println("instance(" + i + ") = " + instance(i).foo());
|
||||||
}
|
}
|
||||||
|
|
||||||
Base[] array = { new Derived1(), new Derived2() };
|
Base[] array = { new Derived1(), new Derived2() };
|
||||||
WasmRuntime.print(array.length);
|
println("array.length = " + array.length);
|
||||||
for (Base elem : array) {
|
for (Base elem : array) {
|
||||||
WasmRuntime.print(elem.foo());
|
println("array[i]" + elem.foo());
|
||||||
}
|
}
|
||||||
|
|
||||||
WasmRuntime.print(new Derived2() instanceof Base ? 1 : 0);
|
println("Derived2 instanceof Base = " + (new Derived2() instanceof Base));
|
||||||
WasmRuntime.print(new Derived3() instanceof Base ? 1 : 0);
|
println("Derived3 instanceof Base = " + (new Derived3() instanceof Base));
|
||||||
WasmRuntime.print((Object) new Derived2() instanceof Derived1 ? 1 : 0);
|
println("Derived2 instanceof Derived1 = " + ((Object) new Derived2() instanceof Derived1));
|
||||||
WasmRuntime.print((Object) new Derived2() instanceof A ? 1 : 0);
|
println("Derived2 instanceof A = " + ((Object) new Derived2() instanceof A));
|
||||||
WasmRuntime.print(new A(23) instanceof Base ? 1 : 0);
|
println("A instanceof Base = " + (new A(23) instanceof Base));
|
||||||
|
|
||||||
byte[] bytes = { 5, 6, 10, 15 };
|
byte[] bytes = { 5, 6, 10, 15 };
|
||||||
for (byte bt : bytes) {
|
for (byte bt : bytes) {
|
||||||
WasmRuntime.print(bt);
|
println("bytes[i] = " + bt);
|
||||||
}
|
|
||||||
|
|
||||||
String str = "foobar";
|
|
||||||
WasmRuntime.print(str.length());
|
|
||||||
for (int i = 0; i < str.length(); ++i) {
|
|
||||||
WasmRuntime.print(str.charAt(i));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Initialized.foo();
|
Initialized.foo();
|
||||||
|
@ -66,17 +62,17 @@ public final class Example {
|
||||||
Initialized.foo();
|
Initialized.foo();
|
||||||
|
|
||||||
Object o = new Object();
|
Object o = new Object();
|
||||||
WasmRuntime.print(o.hashCode());
|
println("hashCode1 = " + o.hashCode());
|
||||||
WasmRuntime.print(o.hashCode());
|
println("hashCode1 = " + o.hashCode());
|
||||||
WasmRuntime.print(new Object().hashCode());
|
println("hashCode2 = " + new Object().hashCode());
|
||||||
WasmRuntime.print(new Object().hashCode());
|
println("hashCode3 = " + new Object().hashCode());
|
||||||
|
|
||||||
List<Integer> list = new ArrayList<>(Arrays.asList(333, 444, 555));
|
List<Integer> list = new ArrayList<>(Arrays.asList(333, 444, 555));
|
||||||
list.add(1234);
|
list.add(1234);
|
||||||
list.remove((Integer) 444);
|
list.remove((Integer) 444);
|
||||||
|
|
||||||
for (int item : list) {
|
for (int item : list) {
|
||||||
WasmRuntime.print(item);
|
println("list[i] = " + item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,11 +131,22 @@ public final class Example {
|
||||||
|
|
||||||
static class Initialized {
|
static class Initialized {
|
||||||
static {
|
static {
|
||||||
WasmRuntime.print(9999);
|
println("Initialized.<clinit>()");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void foo() {
|
public static void foo() {
|
||||||
WasmRuntime.print(8888);
|
println("Initialized.foo()");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void print(String value) {
|
||||||
|
for (int i = 0; i < value.length(); ++i) {
|
||||||
|
WasmRuntime.print(value.charAt(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void println(String value) {
|
||||||
|
print(value);
|
||||||
|
WasmRuntime.print('\n');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,9 +28,6 @@ public interface PlatformPrimitives extends JSObject {
|
||||||
@JSMethod("$rt_shortcls")
|
@JSMethod("$rt_shortcls")
|
||||||
PlatformClass getShortClass();
|
PlatformClass getShortClass();
|
||||||
|
|
||||||
@JSMethod("$rt_charcls")
|
|
||||||
PlatformClass getCharClass();
|
|
||||||
|
|
||||||
@JSMethod("$rt_longcls")
|
@JSMethod("$rt_longcls")
|
||||||
PlatformClass getLongClass();
|
PlatformClass getLongClass();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user