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"