marko 4.24.0 → 4.24.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -74,16 +74,6 @@ function addDelegatedEventHandlerToDoc(eventType, doc) {
74
74
  var listeners = doc[listenersAttachedKey] = doc[listenersAttachedKey] || {};
75
75
  if (!listeners[eventType]) {
76
76
  body.addEventListener(eventType, listeners[eventType] = function (event) {
77
- var propagationStopped = false;
78
-
79
- // Monkey-patch to fix #97
80
- var oldStopPropagation = event.stopPropagation;
81
-
82
- event.stopPropagation = function () {
83
- oldStopPropagation.call(event);
84
- propagationStopped = true;
85
- };
86
-
87
77
  var curNode = event.target;
88
78
  if (!curNode) {
89
79
  return;
@@ -106,15 +96,29 @@ function addDelegatedEventHandlerToDoc(eventType, doc) {
106
96
  // Attributes will have the following form:
107
97
  // on<event_type>("<target_method>|<component_id>")
108
98
 
109
- do {
110
- if (target = getEventFromEl(curNode, propName)) {
111
- delegateEvent(curNode, propName, target, event);
99
+ if (event.bubbles) {
100
+ var propagationStopped = false;
101
+
102
+ // Monkey-patch to fix #97
103
+ var oldStopPropagation = event.stopPropagation;
112
104
 
113
- if (propagationStopped) {
114
- break;
105
+ event.stopPropagation = function () {
106
+ oldStopPropagation.call(event);
107
+ propagationStopped = true;
108
+ };
109
+
110
+ do {
111
+ if (target = getEventFromEl(curNode, propName)) {
112
+ delegateEvent(curNode, propName, target, event);
113
+
114
+ if (propagationStopped) {
115
+ break;
116
+ }
115
117
  }
116
- }
117
- } while ((curNode = curNode.parentNode) && curNode.getAttribute);
118
+ } while ((curNode = curNode.parentNode) && curNode.getAttribute);
119
+ } else if (target = getEventFromEl(curNode, propName)) {
120
+ delegateEvent(curNode, propName, target, event);
121
+ }
118
122
  }, true);
119
123
  }
120
124
  }
@@ -211,7 +211,7 @@ var proto = AsyncStream.prototype = {
211
211
  timeout = AsyncStream.DEFAULT_TIMEOUT;
212
212
  }
213
213
 
214
- newStream._stack = AsyncStream.INCLUDE_STACK ? getNonMarkoStack(new Error()) : null;
214
+ newStream._stack = AsyncStream.INCLUDE_STACK ? new Error() : null;
215
215
  newStream.name = name;
216
216
 
217
217
  if (timeout > 0) {
@@ -437,6 +437,7 @@ var proto = AsyncStream.prototype = {
437
437
  error: function (e) {
438
438
  var name = this.name;
439
439
  var stack = this._stack;
440
+ if (stack) stack = getNonMarkoStack(stack);
440
441
 
441
442
  if (!(e instanceof Error)) {
442
443
  e = new Error(JSON.stringify(e));
@@ -70,15 +70,15 @@ function find(dirname, registeredTaglibs) {
70
70
  var added = {};
71
71
 
72
72
  var helper = {
73
- alreadyAdded: function (taglibPath) {
74
- return added.hasOwnProperty(taglibPath);
73
+ alreadyAdded: function (taglibId) {
74
+ return added.hasOwnProperty(taglibId);
75
75
  },
76
76
  addTaglib: function (taglib) {
77
- if (added[taglib.path]) {
77
+ if (added[taglib.id]) {
78
78
  return;
79
79
  }
80
80
 
81
- added[taglib.path] = true;
81
+ added[taglib.id] = true;
82
82
  found.push(taglib);
83
83
  },
84
84
  foundTaglibPackages: {}
@@ -37,9 +37,9 @@ function buildLookup(dirname) {
37
37
  // The taglibs "closer" to the template will be earlier in the list
38
38
  // and the taglibs "farther" from the template will be later. We
39
39
  // want closer taglibs to take precedence (especially when de-duping)
40
- // so we loop from beginning to end. We used to loop from the end
41
- // to the beginning, but that appears to have been a mistake.
42
- for (var i = 0; i < taglibs.length; i++) {
40
+ // so we add the taglibs in reverse order so that "closer" taglibs
41
+ // merge on top of "farther" ones.
42
+ for (var i = taglibs.length; i--;) {
43
43
  var taglib = taglibs[i];
44
44
  lookup.addTaglib(taglib);
45
45
  handleImports(lookup, taglib);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "marko",
3
- "version": "4.24.0",
3
+ "version": "4.24.4",
4
4
  "license": "MIT",
5
5
  "description": "UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.",
6
6
  "dependencies": {
@@ -17,7 +17,7 @@
17
17
  "estraverse": "^4.3.0",
18
18
  "events-light": "^1.0.0",
19
19
  "he": "^1.1.0",
20
- "htmljs-parser": "^2.11.0",
20
+ "htmljs-parser": "^2.11.1",
21
21
  "lasso-caching-fs": "^1.0.1",
22
22
  "lasso-modules-client": "^2.0.4",
23
23
  "lasso-package-root": "^1.0.1",
@@ -79,16 +79,6 @@ function addDelegatedEventHandlerToDoc(eventType, doc) {
79
79
  body.addEventListener(
80
80
  eventType,
81
81
  (listeners[eventType] = function(event) {
82
- var propagationStopped = false;
83
-
84
- // Monkey-patch to fix #97
85
- var oldStopPropagation = event.stopPropagation;
86
-
87
- event.stopPropagation = function() {
88
- oldStopPropagation.call(event);
89
- propagationStopped = true;
90
- };
91
-
92
82
  var curNode = event.target;
93
83
  if (!curNode) {
94
84
  return;
@@ -111,15 +101,29 @@ function addDelegatedEventHandlerToDoc(eventType, doc) {
111
101
  // Attributes will have the following form:
112
102
  // on<event_type>("<target_method>|<component_id>")
113
103
 
114
- do {
115
- if ((target = getEventFromEl(curNode, propName))) {
116
- delegateEvent(curNode, propName, target, event);
104
+ if (event.bubbles) {
105
+ var propagationStopped = false;
106
+
107
+ // Monkey-patch to fix #97
108
+ var oldStopPropagation = event.stopPropagation;
117
109
 
118
- if (propagationStopped) {
119
- break;
110
+ event.stopPropagation = function() {
111
+ oldStopPropagation.call(event);
112
+ propagationStopped = true;
113
+ };
114
+
115
+ do {
116
+ if ((target = getEventFromEl(curNode, propName))) {
117
+ delegateEvent(curNode, propName, target, event);
118
+
119
+ if (propagationStopped) {
120
+ break;
121
+ }
120
122
  }
121
- }
122
- } while ((curNode = curNode.parentNode) && curNode.getAttribute);
123
+ } while ((curNode = curNode.parentNode) && curNode.getAttribute);
124
+ } else if ((target = getEventFromEl(curNode, propName))) {
125
+ delegateEvent(curNode, propName, target, event);
126
+ }
123
127
  }),
124
128
  true
125
129
  );
@@ -215,9 +215,7 @@ var proto = (AsyncStream.prototype = {
215
215
  timeout = AsyncStream.DEFAULT_TIMEOUT;
216
216
  }
217
217
 
218
- newStream._stack = AsyncStream.INCLUDE_STACK
219
- ? getNonMarkoStack(new Error())
220
- : null;
218
+ newStream._stack = AsyncStream.INCLUDE_STACK ? new Error() : null;
221
219
  newStream.name = name;
222
220
 
223
221
  if (timeout > 0) {
@@ -451,6 +449,7 @@ var proto = (AsyncStream.prototype = {
451
449
  error: function(e) {
452
450
  var name = this.name;
453
451
  var stack = this._stack;
452
+ if (stack) stack = getNonMarkoStack(stack);
454
453
 
455
454
  if (!(e instanceof Error)) {
456
455
  e = new Error(JSON.stringify(e));
@@ -69,15 +69,15 @@ function find(dirname, registeredTaglibs) {
69
69
  var added = {};
70
70
 
71
71
  var helper = {
72
- alreadyAdded: function(taglibPath) {
73
- return added.hasOwnProperty(taglibPath);
72
+ alreadyAdded: function(taglibId) {
73
+ return added.hasOwnProperty(taglibId);
74
74
  },
75
75
  addTaglib: function(taglib) {
76
- if (added[taglib.path]) {
76
+ if (added[taglib.id]) {
77
77
  return;
78
78
  }
79
79
 
80
- added[taglib.path] = true;
80
+ added[taglib.id] = true;
81
81
  found.push(taglib);
82
82
  },
83
83
  foundTaglibPackages: {}
@@ -38,9 +38,9 @@ function buildLookup(dirname) {
38
38
  // The taglibs "closer" to the template will be earlier in the list
39
39
  // and the taglibs "farther" from the template will be later. We
40
40
  // want closer taglibs to take precedence (especially when de-duping)
41
- // so we loop from beginning to end. We used to loop from the end
42
- // to the beginning, but that appears to have been a mistake.
43
- for (var i = 0; i < taglibs.length; i++) {
41
+ // so we add the taglibs in reverse order so that "closer" taglibs
42
+ // merge on top of "farther" ones.
43
+ for (var i = taglibs.length; i--; ) {
44
44
  var taglib = taglibs[i];
45
45
  lookup.addTaglib(taglib);
46
46
  handleImports(lookup, taglib);