Replacing two Boolean arrays holding readOnly and constant info by one numeric array. Helps portability.
diff --git a/ko4j/src/main/java/org/netbeans/html/ko4j/KOTech.java b/ko4j/src/main/java/org/netbeans/html/ko4j/KOTech.java
index 472c2b8..df8f2fb 100644
--- a/ko4j/src/main/java/org/netbeans/html/ko4j/KOTech.java
+++ b/ko4j/src/main/java/org/netbeans/html/ko4j/KOTech.java
@@ -71,13 +71,14 @@
 
     final Object createKO(Object model, Object copyFrom, PropertyBinding[] propArr, FunctionBinding[] funcArr, Knockout[] ko) {
         String[] propNames = new String[propArr.length];
-        Boolean[] propReadOnly = new Boolean[propArr.length];
-        Boolean[] propConstant = new Boolean[propArr.length];
+        Number[] propInfo = new Number[propArr.length];
         Object[] propValues = new Object[propArr.length];
         for (int i = 0; i < propNames.length; i++) {
             propNames[i] = propArr[i].getPropertyName();
-            propReadOnly[i] = propArr[i].isReadOnly();
-            propConstant[i] = propArr[i].isConstant();
+            int info =
+                (propArr[i].isReadOnly() ? 1 : 0) +
+                (propArr[i].isConstant()? 2 : 0);
+            propInfo[i] = info;
             Object value = propArr[i].getValue();
             if (value instanceof Enum) {
                 value = value.toString();
@@ -95,8 +96,7 @@
         }
         newKO.wrapModel(
             ret, copyFrom,
-            propNames, propReadOnly, propConstant, propValues,
-            funcNames
+            propNames, propInfo, propValues, funcNames
         );
         return ret;
     }
diff --git a/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java b/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
index e8bce00..69e341f 100644
--- a/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
+++ b/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
@@ -168,7 +168,7 @@
         javacall = true,
         keepAlive = false,
         wait4js = false,
-        args = { "ret", "copyFrom", "propNames", "propReadOnly", "propConstant", "propValues", "funcNames" },
+        args = { "ret", "copyFrom", "propNames", "propInfo", "propValues", "funcNames" },
         body = 
           "Object.defineProperty(ret, 'ko4j', { value : this });\n"
         + "function koComputed(index, name, readOnly, value) {\n"
@@ -225,10 +225,10 @@
         + "  ret[name] = cmpt;\n"
         + "}\n"
         + "for (var i = 0; i < propNames.length; i++) {\n"
-        + "  if (propConstant[i]) {\n"
+        + "  if ((propInfo[i] & 2) !== 0) {\n"
         + "    ret[propNames[i]] = propValues[i];\n"
         + "  } else {\n"
-        + "    koComputed(i, propNames[i], propReadOnly[i], propValues[i]);\n"
+        + "    koComputed(i, propNames[i], (propInfo[i] & 1) !== 0, propValues[i]);\n"
         + "  }\n"
         + "}\n"
         + "function koExpose(index, name) {\n"
@@ -244,7 +244,7 @@
         )
     native void wrapModel(
         Object ret, Object copyFrom,
-        String[] propNames, Boolean[] propReadOnly, Boolean[] propConstant,
+        String[] propNames, Number[] propInfo,
         Object propValues,
         String[] funcNames
     );