From: Aleksander Ɓukasz Date: Wed, 14 May 2014 13:40:13 +0000 (+0200) Subject: wlxml: Allow for setting non-function properties via extension X-Git-Url: https://git.mdrn.pl/fnpeditor.git/commitdiff_plain/b53d709d888332da35d991ef449ddfc60633273f?ds=inline wlxml: Allow for setting non-function properties via extension --- diff --git a/src/wlxml/wlxml.js b/src/wlxml/wlxml.js index 0505116..bbd6233 100644 --- a/src/wlxml/wlxml.js +++ b/src/wlxml/wlxml.js @@ -58,7 +58,9 @@ var installObject = function(instance, klass) { }); instance.object = Object.create(_.extend({}, methods, transformations)); _.keys(methods).concat(_.keys(transformations)).forEach(function(key) { - instance.object[key] = _.bind(instance.object[key], instance); + if(_.isFunction(instance.object[key])) { + instance.object[key] = _.bind(instance.object[key], instance); + } }); }; diff --git a/src/wlxml/wlxml.test.js b/src/wlxml/wlxml.test.js index 9904154..af0e23b 100644 --- a/src/wlxml/wlxml.test.js +++ b/src/wlxml/wlxml.test.js @@ -286,6 +286,15 @@ describe('WLXMLDocument', function() { expect(testClassNode.object.testMethod().sameNode(testClassNode)).to.equal(true, '1'); }); + it('allows adding non-function properties to an ElementNode of specific class', function() { + extension = {wlxmlClass: {test_class: {methods: { + testProp: 123 + }}}}; + doc.registerExtension(extension); + testClassNode = doc.root.contents()[1]; + expect(testClassNode.object.testProp).to.equal(123); + }); + it('allows adding transformation to an ElementNode of specific class', function() { extension = {wlxmlClass: {test_class: {transformations: { testTransformation: function() { return this; },