Skip to content

Commit 68063b1

Browse files
committed
v1.0.15 release
This minor update includes a bug fix described in issue: #459 Paths such as 'list^[].a' and 'list()^[].a' are now fully supported See unit tests https://www.jsviews.com/test/unit-tests-jsobservable-no-jqueryviews.html.
1 parent ffb7371 commit 68063b1

31 files changed

+991
-1683
lines changed

gulpfile.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ gulp.task('bundle', function() {
1010
var tmplify = require('jsrender/tmplify');
1111
var gs = require('glob-stream');
1212

13-
return gs.create('./test/browserify/*-unit-tests.js')
13+
return gs('./test/browserify/*-unit-tests.js')
1414
.on('data', function(file) {
1515
// file has path, base, and cwd attrs
1616
var fileName = file.path.slice(file.base.length, -14);

jquery.observable.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! JsObservable v1.0.14: http://jsviews.com/#jsobservable */
1+
/*! JsObservable v1.0.15: http://jsviews.com/#jsobservable */
22
/*
33
* Subcomponent of JsViews
44
* Data change events for data-linking
@@ -44,7 +44,7 @@ if (!$ || !$.fn) {
4444
throw "jquery.observable.js requires jQuery"; // We require jQuery
4545
}
4646

47-
var versionNumber = "v1.0.14",
47+
var versionNumber = "v1.0.15",
4848
_ocp = "_ocp", // Observable contextual parameter
4949
$observe, $observable,
5050

@@ -387,7 +387,7 @@ if (!$.observe) {
387387
data = events[el] && events[el].data;
388388
if (data && (off && data.ns !== initialNs
389389
// When observing, don't unbind dups unless they have the same namespace
390-
|| !off && data.ns === initialNs && data.cb && data.cb._cId === cb._cId && (!cb._wrp || data.cb._wrp)))
390+
|| !off && data.ns === initialNs && data.cb && data.cb._cId === cb._cId && data.cb._inId === cb._inId && (!cb._wrp || data.cb._wrp)))
391391
// When observing and doing array binding, don't bind dups if they have the same namespace (Dups can happen e.g. with {^{for people ^~foo=people}})
392392
{
393393
return;
@@ -513,6 +513,7 @@ if (!$.observe) {
513513
if (callback) {
514514
obArrAddRemove._cId = getCbKey(callback); // Identify wrapped callback with unwrapped callback, so unobserveAll will
515515
// remove previous observeAll wrapped callback, if inner callback was the same;
516+
obArrAddRemove._inId = ".arIn" + observeInnerCbKey++; // Specific _inId for each distinct obArrAddRemove, so not skipped as dups
516517
}
517518

518519
var arrIndex, skip, dep, obArr, prt, fnProp, isGet,
@@ -553,7 +554,8 @@ if (!$.observe) {
553554
}
554555
if (skip) {
555556
// Duplicate binding(s) found, so move on
556-
obj = obj[prop];
557+
fnProp = obj[prop];
558+
obj = $isFunction(fnProp) ? fnProp.call(obj) : obj[prop];
557559
continue;
558560
}
559561
}

jquery.observable.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

jquery.observable.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

jquery.views.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! jquery.views.js v1.0.14: http://jsviews.com/ */
1+
/*! jquery.views.js v1.0.15: http://jsviews.com/ */
22
/*
33
* Interactive data-driven views using JsRender templates.
44
* Subcomponent of JsViews
@@ -44,7 +44,7 @@ var setGlobals = $ === false; // Only set globals if script block in browser (no
4444
jsr = jsr || setGlobals && global.jsrender;
4545
$ = $ || global.jQuery;
4646

47-
var versionNumber = "v1.0.14",
47+
var versionNumber = "v1.0.15",
4848
requiresStr = "jquery.views.js requires ";
4949

5050
if (!$ || !$.fn) {

jquery.views.min.js

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

jquery.views.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

jsrender.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! JsRender v1.0.14: http://jsviews.com/#jsrender */
1+
/*! JsRender v1.0.15: http://jsviews.com/#jsrender */
22
/*! **VERSION FOR WEB** (For NODE.JS see http://jsviews.com/download/jsrender-node.js) */
33
/*
44
* Best-of-breed templating in browser or on Node.js.
@@ -44,7 +44,7 @@ var setGlobals = $ === false; // Only set globals if script block in browser (no
4444

4545
$ = $ && $.fn ? $ : global.jQuery; // $ is jQuery passed in by CommonJS loader (Browserify), or global jQuery.
4646

47-
var versionNumber = "v1.0.14",
47+
var versionNumber = "v1.0.15",
4848
jsvStoreName, rTag, rTmplString, topView, $views, $expando,
4949
_ocp = "_ocp", // Observable contextual parameter
5050

jsrender.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

jsrender.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

jsviews.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! jsviews.js v1.0.14 single-file version: http://jsviews.com/ */
1+
/*! jsviews.js v1.0.15 single-file version: http://jsviews.com/ */
22
/*! includes JsRender, JsObservable and JsViews - see: http://jsviews.com/#download */
33

44
/* Interactive data-driven views using JsRender templates */
@@ -47,7 +47,7 @@ if (!$ || !$.fn) {
4747
throw "JsViews requires jQuery"; // We require jQuery
4848
}
4949

50-
var versionNumber = "v1.0.14",
50+
var versionNumber = "v1.0.15",
5151

5252
jsvStoreName, rTag, rTmplString, topView, $views, $observe, $observable, $expando,
5353
_ocp = "_ocp", // Observable contextual parameter
@@ -3340,7 +3340,7 @@ if (!$.observe) {
33403340
data = events[el] && events[el].data;
33413341
if (data && (off && data.ns !== initialNs
33423342
// When observing, don't unbind dups unless they have the same namespace
3343-
|| !off && data.ns === initialNs && data.cb && data.cb._cId === cb._cId && (!cb._wrp || data.cb._wrp)))
3343+
|| !off && data.ns === initialNs && data.cb && data.cb._cId === cb._cId && data.cb._inId === cb._inId && (!cb._wrp || data.cb._wrp)))
33443344
// When observing and doing array binding, don't bind dups if they have the same namespace (Dups can happen e.g. with {^{for people ^~foo=people}})
33453345
{
33463346
return;
@@ -3466,6 +3466,7 @@ if (!$.observe) {
34663466
if (callback) {
34673467
obArrAddRemove._cId = getCbKey(callback); // Identify wrapped callback with unwrapped callback, so unobserveAll will
34683468
// remove previous observeAll wrapped callback, if inner callback was the same;
3469+
obArrAddRemove._inId = ".arIn" + observeInnerCbKey++; // Specific _inId for each distinct obArrAddRemove, so not skipped as dups
34693470
}
34703471

34713472
var arrIndex, skip, dep, obArr, prt, fnProp, isGet,
@@ -3506,7 +3507,8 @@ if (!$.observe) {
35063507
}
35073508
if (skip) {
35083509
// Duplicate binding(s) found, so move on
3509-
obj = obj[prop];
3510+
fnProp = obj[prop];
3511+
obj = $isFunction(fnProp) ? fnProp.call(obj) : obj[prop];
35103512
continue;
35113513
}
35123514
}

jsviews.min.js

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

jsviews.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)