Fixed empty lambda expressions
This commit is contained in:
parent
68606d9681
commit
6839b7506b
|
@ -112,7 +112,11 @@ function generateProps(node, context) {
|
||||||
var funcParts = val.split('=>');
|
var funcParts = val.split('=>');
|
||||||
var evtParams = funcParts[0].replace('(', '').replace(')', '').trim();
|
var evtParams = funcParts[0].replace('(', '').replace(')', '').trim();
|
||||||
var funcBody = funcParts[1].trim();
|
var funcBody = funcParts[1].trim();
|
||||||
var generatedFuncName = generateInjectedFunc(context, key, funcBody,context.boundParams.concat([evtParams]));
|
var params = context.boundParams;
|
||||||
|
if (evtParams.trim() !== '') {
|
||||||
|
params = params.concat([evtParams.trim()]);
|
||||||
|
}
|
||||||
|
var generatedFuncName = generateInjectedFunc(context, key, funcBody, params);
|
||||||
props[propKey] = generatedFuncName + ".bind(" + (["this"].concat(context.boundParams)).join(",") + ")";
|
props[propKey] = generatedFuncName + ".bind(" + (["this"].concat(context.boundParams)).join(",") + ")";
|
||||||
} else if (key === "style" && !isStringOnlyCode(val)) {
|
} else if (key === "style" && !isStringOnlyCode(val)) {
|
||||||
var styleParts = val.trim().split(";");
|
var styleParts = val.trim().split(";");
|
||||||
|
@ -214,7 +218,6 @@ function convertHtmlToReact(node, context) {
|
||||||
data.repeatBinds = ["this"].concat(_.reject(context.boundParams, function (param) {
|
data.repeatBinds = ["this"].concat(_.reject(context.boundParams, function (param) {
|
||||||
return (param === data.item || param === data.item+"Index");
|
return (param === data.item || param === data.item+"Index");
|
||||||
}));
|
}));
|
||||||
console.log(data.repeatBinds);
|
|
||||||
data.body = repeatTemplate(data);
|
data.body = repeatTemplate(data);
|
||||||
}
|
}
|
||||||
if (node.attribs[ifProp]) {
|
if (node.attribs[ifProp]) {
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<!DOCTYPE jsx>
|
||||||
|
<div rt-scope="{value:'event did not happen because onClick not called'} as data"
|
||||||
|
onMouseDown="(evt) => data.value = 'event did happen though it should not'"
|
||||||
|
onClick="() => data.value = 'event did happen though it should not'">
|
||||||
|
{data.value}
|
||||||
|
</div>
|
|
@ -0,0 +1,3 @@
|
||||||
|
<div>
|
||||||
|
event did not happen because onClick not called
|
||||||
|
</div>
|
|
@ -1,6 +1,8 @@
|
||||||
<!DOCTYPE jsx>
|
<!DOCTYPE jsx>
|
||||||
<p>
|
<p>
|
||||||
<div rt-repeat="items in this.props.things">
|
<div rt-repeat="items in this.props.things">
|
||||||
<span style="width:auto;line-height: 5px;" onClick="(evt)=>this.happend(evt);return false;">Mock</span>
|
<span style="width:auto;line-height: 5px;"
|
||||||
|
onClick="(evt)=>this.happend(evt);return false;"
|
||||||
|
onMouseDown="()=>this.happend();return false;">Mock</span>
|
||||||
</div>
|
</div>
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -7,19 +7,24 @@ define([
|
||||||
this.happend(evt);
|
this.happend(evt);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
function repeatItems2(items, itemsIndex) {
|
function onMouseDown2(items, itemsIndex) {
|
||||||
|
this.happend();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
function repeatItems3(items, itemsIndex) {
|
||||||
return React.DOM.div({}, React.DOM.span({
|
return React.DOM.div({}, React.DOM.span({
|
||||||
'style': {
|
'style': {
|
||||||
width: 'auto',
|
width: 'auto',
|
||||||
lineHeight: '5px'
|
lineHeight: '5px'
|
||||||
},
|
},
|
||||||
'onClick': onClick1.bind(this, items, itemsIndex)
|
'onClick': onClick1.bind(this, items, itemsIndex),
|
||||||
|
'onMouseDown': onMouseDown2.bind(this, items, itemsIndex)
|
||||||
}, 'Mock'));
|
}, 'Mock'));
|
||||||
}
|
}
|
||||||
return function () {
|
return function () {
|
||||||
return React.DOM.p.apply(this, _.flatten([
|
return React.DOM.p.apply(this, _.flatten([
|
||||||
{},
|
{},
|
||||||
_.map(this.props.things, repeatItems2.bind(this))
|
_.map(this.props.things, repeatItems3.bind(this))
|
||||||
]));
|
]));
|
||||||
};
|
};
|
||||||
});
|
});
|
|
@ -36,7 +36,7 @@ function normalizeHtml(html) {
|
||||||
}
|
}
|
||||||
|
|
||||||
test('html tests', function (t) {
|
test('html tests', function (t) {
|
||||||
var files = ['scope.rt'];
|
var files = ['scope.rt', 'lambda.rt'];
|
||||||
t.plan(files.length);
|
t.plan(files.length);
|
||||||
|
|
||||||
files.forEach(check);
|
files.forEach(check);
|
||||||
|
@ -60,7 +60,6 @@ test('html tests', function (t) {
|
||||||
var actual = React.renderToStaticMarkup(comp());
|
var actual = React.renderToStaticMarkup(comp());
|
||||||
actual = normalizeHtml(actual);
|
actual = normalizeHtml(actual);
|
||||||
expected = normalizeHtml(expected);
|
expected = normalizeHtml(expected);
|
||||||
console.log(actual,expected)
|
|
||||||
t.equal(actual, expected);
|
t.equal(actual, expected);
|
||||||
if (actual !== expected) {
|
if (actual !== expected) {
|
||||||
fs.writeFileSync(filename + '.actual.html', actual);
|
fs.writeFileSync(filename + '.actual.html', actual);
|
||||||
|
|
Loading…
Reference in New Issue