mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Marko v3: Don't remove core directive attributes if they don't have an arg
This commit is contained in:
parent
5b1e3111c6
commit
fd6da21e48
@ -7,7 +7,7 @@ var coreAttrHandlers = [
|
|||||||
'for', function(attr, node) {
|
'for', function(attr, node) {
|
||||||
var forArgument = attr.argument;
|
var forArgument = attr.argument;
|
||||||
if (!forArgument) {
|
if (!forArgument) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var loopNode = createLoopNode(forArgument, null, this.builder);
|
var loopNode = createLoopNode(forArgument, null, this.builder);
|
||||||
@ -22,7 +22,7 @@ var coreAttrHandlers = [
|
|||||||
'if', function(attr, node) {
|
'if', function(attr, node) {
|
||||||
var ifArgument = attr.argument;
|
var ifArgument = attr.argument;
|
||||||
if (!ifArgument) {
|
if (!ifArgument) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
var ifNode = this.builder.ifStatement(ifArgument);
|
var ifNode = this.builder.ifStatement(ifArgument);
|
||||||
//Surround the existing node with an "If" node
|
//Surround the existing node with an "If" node
|
||||||
@ -33,7 +33,7 @@ var coreAttrHandlers = [
|
|||||||
'unless', function(attr, node) {
|
'unless', function(attr, node) {
|
||||||
var ifArgument = attr.argument;
|
var ifArgument = attr.argument;
|
||||||
if (!ifArgument) {
|
if (!ifArgument) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
ifArgument = this.builder.negate(ifArgument);
|
ifArgument = this.builder.negate(ifArgument);
|
||||||
var ifNode = this.builder.ifStatement(ifArgument);
|
var ifNode = this.builder.ifStatement(ifArgument);
|
||||||
@ -45,7 +45,7 @@ var coreAttrHandlers = [
|
|||||||
'else-if', function(attr, node) {
|
'else-if', function(attr, node) {
|
||||||
var elseIfArgument = attr.argument;
|
var elseIfArgument = attr.argument;
|
||||||
if (!elseIfArgument) {
|
if (!elseIfArgument) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
var elseIfNode = this.builder.elseIfStatement(elseIfArgument);
|
var elseIfNode = this.builder.elseIfStatement(elseIfArgument);
|
||||||
//Surround the existing node with an "ElseIf" node
|
//Surround the existing node with an "ElseIf" node
|
||||||
@ -63,7 +63,7 @@ var coreAttrHandlers = [
|
|||||||
'body-only-if', function(attr, node, el) {
|
'body-only-if', function(attr, node, el) {
|
||||||
var condition = attr.argument;
|
var condition = attr.argument;
|
||||||
if (!condition) {
|
if (!condition) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
el.setBodyOnlyIf(condition);
|
el.setBodyOnlyIf(condition);
|
||||||
@ -111,15 +111,16 @@ module.exports = function transform(el, context) {
|
|||||||
let attrName = attr.name;
|
let attrName = attr.name;
|
||||||
var attrTransformerFunc = attributeTransformers[attrName];
|
var attrTransformerFunc = attributeTransformers[attrName];
|
||||||
if (attrTransformerFunc) {
|
if (attrTransformerFunc) {
|
||||||
el.removeAttribute(attrName);
|
|
||||||
|
|
||||||
if (!attributeTransfomer) {
|
if (!attributeTransfomer) {
|
||||||
attributeTransfomer = new AttributeTransformer(context, el);
|
attributeTransfomer = new AttributeTransformer(context, el);
|
||||||
}
|
}
|
||||||
var newNode = attributeTransfomer[attrName](attr, node, el);
|
var newNode = attributeTransfomer[attrName](attr, node, el);
|
||||||
if (newNode) {
|
if (newNode !== false) {
|
||||||
newNode.pos = node.pos;
|
el.removeAttribute(attrName);
|
||||||
node = newNode;
|
if (newNode) {
|
||||||
|
newNode.pos = node.pos;
|
||||||
|
node = newNode;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user