diff --git a/bower.json b/bower.json index 6d73ad1..a2a0f08 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "object.observe", - "version": "0.2.5", + "version": "0.2.6", "homepage": "https://github.com/MaxArt2501/object-observe", "authors": [ "Massimo Artizzu " diff --git a/dist/object-observe-lite.js b/dist/object-observe-lite.js index 1cae1b6..973dfcb 100644 --- a/dist/object-observe-lite.js +++ b/dist/object-observe-lite.js @@ -348,9 +348,10 @@ Object.observe || (function(O, A, root, _undefined) { * @param {Handler} handler */ deliverHandlerRecords = function(hdata, handler) { - if (hdata.changeRecords.length) { - handler(hdata.changeRecords); + var records = hdata.changeRecords; + if (records.length) { hdata.changeRecords = []; + handler(records); } }, diff --git a/dist/object-observe-lite.min.js b/dist/object-observe-lite.min.js index 2608802..8b9cca0 100644 --- a/dist/object-observe-lite.min.js +++ b/dist/object-observe-lite.min.js @@ -1,2 +1,2 @@ -Object.observe||function(e,t,n,r){"use strict";var o,i,c=["add","update","delete","reconfigure","setPrototype","preventExtensions"],a=t.isArray||function(e){return function(t){return"[object Array]"===e.call(t)}}(e.prototype.toString),f=t.prototype.indexOf?t.indexOf||function(e,n,r){return t.prototype.indexOf.call(e,n,r)}:function(e,t,n){for(var r=n||0;r-1},get:function(n){return t[f(e,n)]},set:function(n,r){var o=f(e,n);-1===o?(e.push(n),t.push(r),this.size++):t[o]=r},"delete":function(n){var r=f(e,n);r>-1&&(e.splice(r,1),t.splice(r,1),this.size--)},forEach:function(n){for(var r=0;r-1&&n.splice(o,1);return n})}return t}():function(t){var n,r,o=[];if("hasOwnProperty"in t)for(n in t)t.hasOwnProperty(n)&&o.push(n);else{r=e.hasOwnProperty;for(n in t)r.call(t,n)&&o.push(n)}return a(t)&&o.push("length"),o},p=n.requestAnimationFrame||n.webkitRequestAnimationFrame||function(){var e=+new Date,t=e;return function(n){return setTimeout(function(){n((t=+new Date)-e)},17)}}(),l=function(e,t,n){var r=o.get(e);r?(v(r,e),g(e,r,t,n)):(r=h(e),g(e,r,t,n),1===o.size&&p(d))},h=function(e,t){for(var n=u(e),r=[],i=0,t={handlers:s(),properties:n,values:r,notifier:b(e,t)};i-1&&t.changeRecords.push(n)})};o=s(),i=s(),e.observe=function(t,n,o){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object.observe cannot observe non-object");if("function"!=typeof n)throw new TypeError("Object.observe cannot deliver to non-function");if(e.isFrozen&&e.isFrozen(n))throw new TypeError("Object.observe cannot deliver to a frozen function object");if(o===r)o=c;else if(!o||"object"!=typeof o)throw new TypeError("Third argument to Object.observe must be an array of strings.");return l(t,n,o),t},e.unobserve=function(e,t){if(null===e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object.unobserve cannot unobserve non-object");if("function"!=typeof t)throw new TypeError("Object.unobserve cannot deliver to non-function");var n,r=i.get(t);return r&&(n=r.observed.get(e))&&(r.observed.forEach(function(e,t){v(e.data,t)}),p(function(){y(r,t)}),1===r.observed.size&&r.observed.has(e)?i["delete"](t):r.observed["delete"](e),1===n.data.handlers.size?o["delete"](e):n.data.handlers["delete"](t)),e},e.getNotifier=function(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object.getNotifier cannot getNotifier non-object");return e.isFrozen&&e.isFrozen(t)?null:b(t)},e.deliverChangeRecords=function(e){if("function"!=typeof e)throw new TypeError("Object.deliverChangeRecords cannot deliver to non-function");var t=i.get(e);t&&(t.observed.forEach(function(e,t){v(e.data,t)}),y(t,e))}}(Object,Array,this); +Object.observe||function(e,t,n,r){"use strict";var o,i,c=["add","update","delete","reconfigure","setPrototype","preventExtensions"],a=t.isArray||function(e){return function(t){return"[object Array]"===e.call(t)}}(e.prototype.toString),f=t.prototype.indexOf?t.indexOf||function(e,n,r){return t.prototype.indexOf.call(e,n,r)}:function(e,t,n){for(var r=n||0;r-1},get:function(n){return t[f(e,n)]},set:function(n,r){var o=f(e,n);-1===o?(e.push(n),t.push(r),this.size++):t[o]=r},"delete":function(n){var r=f(e,n);r>-1&&(e.splice(r,1),t.splice(r,1),this.size--)},forEach:function(n){for(var r=0;r-1&&n.splice(o,1);return n})}return t}():function(t){var n,r,o=[];if("hasOwnProperty"in t)for(n in t)t.hasOwnProperty(n)&&o.push(n);else{r=e.hasOwnProperty;for(n in t)r.call(t,n)&&o.push(n)}return a(t)&&o.push("length"),o},p=n.requestAnimationFrame||n.webkitRequestAnimationFrame||function(){var e=+new Date,t=e;return function(n){return setTimeout(function(){n((t=+new Date)-e)},17)}}(),l=function(e,t,n){var r=o.get(e);r?(v(r,e),g(e,r,t,n)):(r=h(e),g(e,r,t,n),1===o.size&&p(d))},h=function(e,t){for(var n=u(e),r=[],i=0,t={handlers:s(),properties:n,values:r,notifier:b(e,t)};i-1&&t.changeRecords.push(n)})};o=s(),i=s(),e.observe=function(t,n,o){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object.observe cannot observe non-object");if("function"!=typeof n)throw new TypeError("Object.observe cannot deliver to non-function");if(e.isFrozen&&e.isFrozen(n))throw new TypeError("Object.observe cannot deliver to a frozen function object");if(o===r)o=c;else if(!o||"object"!=typeof o)throw new TypeError("Third argument to Object.observe must be an array of strings.");return l(t,n,o),t},e.unobserve=function(e,t){if(null===e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object.unobserve cannot unobserve non-object");if("function"!=typeof t)throw new TypeError("Object.unobserve cannot deliver to non-function");var n,r=i.get(t);return r&&(n=r.observed.get(e))&&(r.observed.forEach(function(e,t){v(e.data,t)}),p(function(){y(r,t)}),1===r.observed.size&&r.observed.has(e)?i["delete"](t):r.observed["delete"](e),1===n.data.handlers.size?o["delete"](e):n.data.handlers["delete"](t)),e},e.getNotifier=function(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object.getNotifier cannot getNotifier non-object");return e.isFrozen&&e.isFrozen(t)?null:b(t)},e.deliverChangeRecords=function(e){if("function"!=typeof e)throw new TypeError("Object.deliverChangeRecords cannot deliver to non-function");var t=i.get(e);t&&(t.observed.forEach(function(e,t){v(e.data,t)}),y(t,e))}}(Object,Array,this); //# sourceMappingURL=object-observe-lite.min.map \ No newline at end of file diff --git a/dist/object-observe-lite.min.map b/dist/object-observe-lite.min.map index 98c4bec..8dc027d 100644 --- a/dist/object-observe-lite.min.map +++ b/dist/object-observe-lite.min.map @@ -1 +1 @@ -{"version":3,"file":"object-observe-lite.min.js","sources":["object-observe-lite.js"],"names":["Object","observe","O","A","root","_undefined","observed","handlers","defaultAcceptList","isArray","toString","object","call","prototype","inArray","indexOf","array","pivot","start","i","length","createMap","Map","forEach","keys","values","size","has","key","get","set","value","push","this","delete","splice","callback","arguments","getProps","getOwnPropertyNames","func","callee","e","avoid","join","replace","slice","split","props","j","prop","hop","hasOwnProperty","nextFrame","requestAnimationFrame","webkitRequestAnimationFrame","initial","Date","last","setTimeout","doObserve","handler","acceptList","data","performPropertyChecks","setHandler","createObjectData","runGlobalLoop","properties","notifier","retrieveNotifier","except","proplen","idx","ovalue","addChangeRecord","name","type","oldValue","deliverHandlerRecords","hdata","changeRecords","notify","changeRecord","recordCopy","performChange","changeType","TypeError","thisObj","result","isFrozen","unobserve","odata","getNotifier","deliverChangeRecords","Array"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"object-observe-lite.min.js","sources":["object-observe-lite.js"],"names":["Object","observe","O","A","root","_undefined","observed","handlers","defaultAcceptList","isArray","toString","object","call","prototype","inArray","indexOf","array","pivot","start","i","length","createMap","Map","forEach","keys","values","size","has","key","get","set","value","push","this","delete","splice","callback","arguments","getProps","getOwnPropertyNames","func","callee","e","avoid","join","replace","slice","split","props","j","prop","hop","hasOwnProperty","nextFrame","requestAnimationFrame","webkitRequestAnimationFrame","initial","Date","last","setTimeout","doObserve","handler","acceptList","data","performPropertyChecks","setHandler","createObjectData","runGlobalLoop","properties","notifier","retrieveNotifier","except","proplen","idx","ovalue","addChangeRecord","name","type","oldValue","deliverHandlerRecords","hdata","records","changeRecords","notify","changeRecord","recordCopy","performChange","changeType","TypeError","thisObj","result","isFrozen","unobserve","odata","getNotifier","deliverChangeRecords","Array"],"mappings":"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"} \ No newline at end of file diff --git a/dist/object-observe.js b/dist/object-observe.js index 568190f..071f179 100644 --- a/dist/object-observe.js +++ b/dist/object-observe.js @@ -512,9 +512,10 @@ Object.observe || (function(O, A, root, _undefined) { * @param {Handler} handler */ deliverHandlerRecords = function(hdata, handler) { - if (hdata.changeRecords.length) { - handler(hdata.changeRecords); + var records = hdata.changeRecords; + if (records.length) { hdata.changeRecords = []; + handler(records); } }, diff --git a/dist/object-observe.min.js b/dist/object-observe.min.js index 0199056..e00549f 100644 --- a/dist/object-observe.min.js +++ b/dist/object-observe.min.js @@ -1,2 +1,2 @@ -Object.observe||function(e,t,n,r){"use strict";var o,i,s=["add","update","delete","reconfigure","setPrototype","preventExtensions"],c=t.isArray||function(e){return function(t){return"[object Array]"===e.call(t)}}(e.prototype.toString),a=t.prototype.indexOf?t.indexOf||function(e,n,r){return t.prototype.indexOf.call(e,n,r)}:function(e,t,n){for(var r=n||0;r-1},get:function(n){return t[a(e,n)]},set:function(n,r){var o=a(e,n);-1===o?(e.push(n),t.push(r),this.size++):t[o]=r},"delete":function(n){var r=a(e,n);r>-1&&(e.splice(r,1),t.splice(r,1),this.size--)},forEach:function(n){for(var r=0;r-1&&n.splice(o,1);return n})}return t}():function(t){var n,r,o=[];if("hasOwnProperty"in t)for(n in t)t.hasOwnProperty(n)&&o.push(n);else{r=e.hasOwnProperty;for(n in t)r.call(t,n)&&o.push(n)}return c(t)&&o.push("length"),o},p=e.getPrototypeOf,l=e.defineProperties&&e.getOwnPropertyDescriptor,h=n.requestAnimationFrame||n.webkitRequestAnimationFrame||function(){var e=+new Date,t=e;return function(n){return setTimeout(function(){n((t=+new Date)-e)},17)}}(),b=function(e,t,n){var r=o.get(e);r?(v(r,e),w(e,r,t,n)):(r=d(e),w(e,r,t,n),1===o.size&&h(g))},d=function(t,n){var r,i=u(t),s=[],c=0,n={handlers:f(),frozen:e.isFrozen?e.isFrozen(t):!1,extensible:e.isExtensible?e.isExtensible(t):!0,proto:p&&p(t),properties:i,values:s,notifier:j(t,n)};if(l)for(r=n.descriptors=[];c-1&&t.changeRecords.push(n)})};o=f(),i=f(),e.observe=function(t,n,o){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object.observe cannot observe non-object");if("function"!=typeof n)throw new TypeError("Object.observe cannot deliver to non-function");if(e.isFrozen&&e.isFrozen(n))throw new TypeError("Object.observe cannot deliver to a frozen function object");if(o===r)o=s;else if(!o||"object"!=typeof o)throw new TypeError("Third argument to Object.observe must be an array of strings.");return b(t,n,o),t},e.unobserve=function(e,t){if(null===e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object.unobserve cannot unobserve non-object");if("function"!=typeof t)throw new TypeError("Object.unobserve cannot deliver to non-function");var n,r=i.get(t);return r&&(n=r.observed.get(e))&&(r.observed.forEach(function(e,t){v(e.data,t)}),h(function(){y(r,t)}),1===r.observed.size&&r.observed.has(e)?i["delete"](t):r.observed["delete"](e),1===n.data.handlers.size?o["delete"](e):n.data.handlers["delete"](t)),e},e.getNotifier=function(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object.getNotifier cannot getNotifier non-object");return e.isFrozen&&e.isFrozen(t)?null:j(t)},e.deliverChangeRecords=function(e){if("function"!=typeof e)throw new TypeError("Object.deliverChangeRecords cannot deliver to non-function");var t=i.get(e);t&&(t.observed.forEach(function(e,t){v(e.data,t)}),y(t,e))}}(Object,Array,this); +Object.observe||function(e,t,n,r){"use strict";var o,i,s=["add","update","delete","reconfigure","setPrototype","preventExtensions"],c=t.isArray||function(e){return function(t){return"[object Array]"===e.call(t)}}(e.prototype.toString),a=t.prototype.indexOf?t.indexOf||function(e,n,r){return t.prototype.indexOf.call(e,n,r)}:function(e,t,n){for(var r=n||0;r-1},get:function(n){return t[a(e,n)]},set:function(n,r){var o=a(e,n);-1===o?(e.push(n),t.push(r),this.size++):t[o]=r},"delete":function(n){var r=a(e,n);r>-1&&(e.splice(r,1),t.splice(r,1),this.size--)},forEach:function(n){for(var r=0;r-1&&n.splice(o,1);return n})}return t}():function(t){var n,r,o=[];if("hasOwnProperty"in t)for(n in t)t.hasOwnProperty(n)&&o.push(n);else{r=e.hasOwnProperty;for(n in t)r.call(t,n)&&o.push(n)}return c(t)&&o.push("length"),o},p=e.getPrototypeOf,l=e.defineProperties&&e.getOwnPropertyDescriptor,h=n.requestAnimationFrame||n.webkitRequestAnimationFrame||function(){var e=+new Date,t=e;return function(n){return setTimeout(function(){n((t=+new Date)-e)},17)}}(),v=function(e,t,n){var r=o.get(e);r?(d(r,e),w(e,r,t,n)):(r=b(e),w(e,r,t,n),1===o.size&&h(y))},b=function(t,n){var r,i=u(t),s=[],c=0,n={handlers:f(),frozen:e.isFrozen?e.isFrozen(t):!1,extensible:e.isExtensible?e.isExtensible(t):!0,proto:p&&p(t),properties:i,values:s,notifier:j(t,n)};if(l)for(r=n.descriptors=[];c-1&&t.changeRecords.push(n)})};o=f(),i=f(),e.observe=function(t,n,o){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object.observe cannot observe non-object");if("function"!=typeof n)throw new TypeError("Object.observe cannot deliver to non-function");if(e.isFrozen&&e.isFrozen(n))throw new TypeError("Object.observe cannot deliver to a frozen function object");if(o===r)o=s;else if(!o||"object"!=typeof o)throw new TypeError("Third argument to Object.observe must be an array of strings.");return v(t,n,o),t},e.unobserve=function(e,t){if(null===e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object.unobserve cannot unobserve non-object");if("function"!=typeof t)throw new TypeError("Object.unobserve cannot deliver to non-function");var n,r=i.get(t);return r&&(n=r.observed.get(e))&&(r.observed.forEach(function(e,t){d(e.data,t)}),h(function(){g(r,t)}),1===r.observed.size&&r.observed.has(e)?i["delete"](t):r.observed["delete"](e),1===n.data.handlers.size?o["delete"](e):n.data.handlers["delete"](t)),e},e.getNotifier=function(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object.getNotifier cannot getNotifier non-object");return e.isFrozen&&e.isFrozen(t)?null:j(t)},e.deliverChangeRecords=function(e){if("function"!=typeof e)throw new TypeError("Object.deliverChangeRecords cannot deliver to non-function");var t=i.get(e);t&&(t.observed.forEach(function(e,t){d(e.data,t)}),g(t,e))}}(Object,Array,this); //# sourceMappingURL=object-observe.min.map \ No newline at end of file diff --git a/dist/object-observe.min.map b/dist/object-observe.min.map index fd38a09..8bd9580 100644 --- a/dist/object-observe.min.map +++ b/dist/object-observe.min.map @@ -1 +1 @@ -{"version":3,"file":"object-observe.min.js","sources":["object-observe.js"],"names":["Object","observe","O","A","root","_undefined","observed","handlers","defaultAcceptList","isArray","toString","object","call","prototype","inArray","indexOf","array","pivot","start","i","length","createMap","Map","forEach","keys","values","size","has","key","get","set","value","push","this","delete","splice","callback","arguments","getProps","getOwnPropertyNames","func","callee","e","avoid","join","replace","slice","split","props","j","prop","hop","hasOwnProperty","getPrototype","getPrototypeOf","getDescriptor","defineProperties","getOwnPropertyDescriptor","nextFrame","requestAnimationFrame","webkitRequestAnimationFrame","initial","Date","last","setTimeout","doObserve","handler","acceptList","data","performPropertyChecks","setHandler","createObjectData","runGlobalLoop","descs","frozen","isFrozen","extensible","isExtensible","proto","properties","notifier","retrieveNotifier","descriptors","updateCheck","idx","except","descr","ovalue","odesc","addChangeRecord","name","type","oldValue","configurable","writable","enumerable","deletionCheck","proplen","deliverHandlerRecords","hdata","changeRecords","notify","changeRecord","recordCopy","performChange","changeType","TypeError","thisObj","result","unobserve","odata","getNotifier","deliverChangeRecords","Array"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"object-observe.min.js","sources":["object-observe.js"],"names":["Object","observe","O","A","root","_undefined","observed","handlers","defaultAcceptList","isArray","toString","object","call","prototype","inArray","indexOf","array","pivot","start","i","length","createMap","Map","forEach","keys","values","size","has","key","get","set","value","push","this","delete","splice","callback","arguments","getProps","getOwnPropertyNames","func","callee","e","avoid","join","replace","slice","split","props","j","prop","hop","hasOwnProperty","getPrototype","getPrototypeOf","getDescriptor","defineProperties","getOwnPropertyDescriptor","nextFrame","requestAnimationFrame","webkitRequestAnimationFrame","initial","Date","last","setTimeout","doObserve","handler","acceptList","data","performPropertyChecks","setHandler","createObjectData","runGlobalLoop","descs","frozen","isFrozen","extensible","isExtensible","proto","properties","notifier","retrieveNotifier","descriptors","updateCheck","idx","except","descr","ovalue","odesc","addChangeRecord","name","type","oldValue","configurable","writable","enumerable","deletionCheck","proplen","deliverHandlerRecords","hdata","records","changeRecords","notify","changeRecord","recordCopy","performChange","changeType","TypeError","thisObj","result","unobserve","odata","getNotifier","deliverChangeRecords","Array"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 7451705..04ad80f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "object.observe", - "version": "0.2.5", + "version": "0.2.6", "description": "Object.observe polyfill based on ES7 spec", "main": "dist/object-observe.js", "directories": { diff --git a/test/index.html b/test/index.html index 0061858..ea5552c 100644 --- a/test/index.html +++ b/test/index.html @@ -14,4 +14,4 @@ - \ No newline at end of file + diff --git a/test/tests.js b/test/tests.js index d83e555..25d4055 100644 --- a/test/tests.js +++ b/test/tests.js @@ -612,6 +612,26 @@ describe("Object.deliverChangeRecords", function() { Object.unobserve(obj2, handler); done(); }); + + it("should not deliver changes already being under delivery", function (done) { + function handler() { + try { + expect(tested).to.be(false); + tested = true; + + Object.deliverChangeRecords(handler); + } catch (e) { done(e); } + }; + + var obj = { value: 1 }, + tested = false; + Object.observe(obj, handler); + + obj.value++; + Object.deliverChangeRecords(handler); + + done(); + }); }); describe("Object.getNotifier", function() {