diff --git a/package.json b/package.json index e0eeb20..e2fd205 100644 --- a/package.json +++ b/package.json @@ -32,8 +32,8 @@ "chalk": "^1.1.1", "cheerio": "^0.19.0", "css": "^2.2.1", - "escodegen": "1.7.1", - "esprima-fb": "^15001.1001.0-dev-harmony-fb", + "escodegen": "^1.8.0", + "esprima": "^2.7.1", "lodash": "^3.10.1", "optionator": "^0.8.0", "text-table": "^0.2.0" diff --git a/src/reactTemplates.js b/src/reactTemplates.js index 496bd41..1e052a8 100644 --- a/src/reactTemplates.js +++ b/src/reactTemplates.js @@ -1,7 +1,7 @@ 'use strict'; var cheerio = require('cheerio'); var _ = require('lodash'); -var esprima = require('esprima-fb'); +var esprima = require('esprima'); var escodegen = require('escodegen'); var reactDOMSupport = require('./reactDOMSupport'); var reactNativeSupport = require('./reactNativeSupport'); @@ -347,7 +347,7 @@ function convertHtmlToReact(node, context) { data.item = arr[0].trim(); data.collection = arr[1].trim(); validateJS(data.item, node, context); - validateJS(data.collection, node, context); + validateJS("(" + data.collection + ")", node, context); stringUtils.addIfMissing(context.boundParams, data.item); stringUtils.addIfMissing(context.boundParams, `${data.item}Index`); } diff --git a/src/utils.js b/src/utils.js index 087f313..cd2f872 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,6 +1,6 @@ 'use strict'; var _ = require('lodash'); -var esprima = require('esprima-fb'); +var esprima = require('esprima'); var rtError = require('./RTCodeError'); var RTCodeError = rtError.RTCodeError; diff --git a/test/data/div.rt.es6.js b/test/data/div.rt.es6.js index 4f40316..9c4e38c 100644 --- a/test/data/div.rt.es6.js +++ b/test/data/div.rt.es6.js @@ -2,4 +2,4 @@ import React from 'react/addons'; import _ from 'lodash'; export default function () { return React.createElement('div', {}); -}; \ No newline at end of file +} \ No newline at end of file diff --git a/test/data/repeat-literal-collection.rt b/test/data/repeat-literal-collection.rt new file mode 100644 index 0000000..ebc5fb6 --- /dev/null +++ b/test/data/repeat-literal-collection.rt @@ -0,0 +1,5 @@ +
+
+ {items} +
+
\ No newline at end of file diff --git a/test/data/repeat-literal-collection.rt.html b/test/data/repeat-literal-collection.rt.html new file mode 100644 index 0000000..0364ab2 --- /dev/null +++ b/test/data/repeat-literal-collection.rt.html @@ -0,0 +1 @@ +
1
2
\ No newline at end of file diff --git a/test/src/test.js b/test/src/test.js index 66c092c..a3cf90f 100644 --- a/test/src/test.js +++ b/test/src/test.js @@ -183,10 +183,28 @@ test('convert jsrt and test source results', function (t) { }); test('html tests', function (t) { - var files = ['scope.rt', 'scope-trailing-semicolon.rt', 'scope-variable-references.rt', 'lambda.rt', 'eval.rt', 'props.rt', 'custom-element.rt', 'style.rt', 'concat.rt', - 'js-in-attr.rt', 'props-class.rt', 'rt-class.rt', 'className.rt', 'svg.rt', 'virtual.rt', - 'scope-evaluated-after-repeat.rt', 'scope-evaluated-after-repeat2.rt', 'scope-evaluated-after-if.rt', 'scope-obj.rt' - ]; + var files = [ + "scope.rt", + "scope-trailing-semicolon.rt", + "scope-variable-references.rt", + "lambda.rt", + "eval.rt", + "props.rt", + "custom-element.rt", + "style.rt", + "concat.rt", + "js-in-attr.rt", + "props-class.rt", + "rt-class.rt", + "className.rt", + "svg.rt", + "virtual.rt", + "scope-evaluated-after-repeat.rt", + "scope-evaluated-after-repeat2.rt", + "scope-evaluated-after-if.rt", + "scope-obj.rt", + "repeat-literal-collection.rt" + ]; t.plan(files.length); files.forEach(check);