2 * Back 2 Browser Bytecode Translator
3 * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, version 2 of the License.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. Look for COPYING file in the top folder.
16 * If not, see http://opensource.org/licenses/GPL-2.0.
18 package org.apidesign.vm4brwsr;
22 * @author Jaroslav Tulach <jtulach@netbeans.org>
24 public class Instance {
29 protected byte b = (byte)31;
34 public Instance(int i, double d) {
38 public byte getByte() {
42 public void setByte(byte b) {
45 public static double defaultDblValue() {
46 Instance create = new Instance();
50 public static byte assignedByteValue() {
51 return new Instance().b;
53 public static double magicOne() {
54 Instance i = new Instance(10, 3.3d);
56 return (i.i - i.b) * i.d;
58 public static int virtualBytes() {
59 Instance i = new InstanceSub(7, 2.2d);
60 i.setByte((byte)0x0a);
61 Instance i2 = new Instance(3, 333.0d);
63 return i.getByte() + i2.getByte();
65 public static float interfaceBytes() {
66 GetByte i = new InstanceSub(7, 2.2d);
69 public static boolean instanceOf(boolean sub) {
70 Instance i = createInstance(sub);
71 return isInstanceSubOf(i);
73 public static int castsWork(boolean interfc) {
74 Instance i = createInstance(true);
76 GetByte b = (GetByte)i;
78 InstanceSub s = (InstanceSub)i;
83 private static boolean isInstanceSubOf(Instance instance) {
84 return instance instanceof InstanceSub;
86 private static Instance createInstance(boolean sub) {
87 return sub ? new InstanceSub(3, 0) : new Instance();
89 private static boolean isNull() {
90 return createInstance(true) == null;