Normalize constant values before they are assigned to knockout context release-1.3
authorJaroslav Tulach <jtulach@netbeans.org>
Wed, 02 Mar 2016 03:13:13 +0100
branchrelease-1.3
changeset 1074051f9a22ae7c
parent 1073 076297c6bca3
child 1075 8583ce1a062b
child 1080 0c9f6bdacc78
Normalize constant values before they are assigned to knockout context
ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
     1.1 --- a/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java	Wed Mar 02 03:08:19 2016 +0100
     1.2 +++ b/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java	Wed Mar 02 03:13:13 2016 +0100
     1.3 @@ -171,6 +171,10 @@
     1.4          args = { "ret", "copyFrom", "propNames", "propInfo", "propValues", "funcNames" },
     1.5          body = 
     1.6            "Object.defineProperty(ret, 'ko4j', { value : this });\n"
     1.7 +        + "function normalValue(r) {\n"
     1.8 +        + "  if (r) try { var br = r.valueOf(); } catch (err) {}\n"
     1.9 +        + "  return br === undefined ? r: br;\n"
    1.10 +        + "}\n"
    1.11          + "function koComputed(index, name, readOnly, value) {\n"
    1.12          + "  var orig = copyFrom ? copyFrom[name] : null;\n"
    1.13          + "  if (!ko['isObservable'](orig)) {\n"
    1.14 @@ -198,8 +202,7 @@
    1.15          + "        var r = activeGetter();\n"
    1.16          + "        activeGetter = realGetter;\n"
    1.17          + "      }\n"
    1.18 -        + "      if (r) try { var br = r.valueOf(); } catch (err) {}\n"
    1.19 -        + "      return br === undefined ? r: br;\n"
    1.20 +        + "      return normalValue(r);;\n"
    1.21          + "    },\n"
    1.22          + "    'owner': ret\n"
    1.23          + "  };\n"
    1.24 @@ -226,7 +229,7 @@
    1.25          + "}\n"
    1.26          + "for (var i = 0; i < propNames.length; i++) {\n"
    1.27          + "  if ((propInfo[i] & 2) !== 0) {\n"
    1.28 -        + "    ret[propNames[i]] = propValues[i];\n"
    1.29 +        + "    ret[propNames[i]] = normalValue(propValues[i]);\n"
    1.30          + "  } else {\n"
    1.31          + "    koComputed(i, propNames[i], (propInfo[i] & 1) !== 0, propValues[i]);\n"
    1.32          + "  }\n"