diff --git a/src/standard/effectBuilder.html b/src/standard/effectBuilder.html
index 27730ec4..a99d4d26 100644
--- a/src/standard/effectBuilder.html
+++ b/src/standard/effectBuilder.html
@@ -190,7 +190,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
// method expressions are of the form: `name([arg1, arg2, .... argn])`
_parseMethod: function(expression) {
// tries to match valid javascript property names
- var m = expression.match(/([^\s]+?)\((.*)\)/);
+ var m = expression.match(/([^\s]+?)\(([\s\S]*)\)/);
if (m) {
var sig = { method: m[1], static: true };
if (m[2].trim()) {
diff --git a/test/unit/bind-elements.html b/test/unit/bind-elements.html
index 58270795..4ab6265d 100644
--- a/test/unit/bind-elements.html
+++ b/test/unit/bind-elements.html
@@ -9,7 +9,11 @@
camel-case="{{value}}"
computed-inline="{{computeInline(value,add, divide)}}"
computed-inline2="{{computeInline(value, add,divide)}}"
+ computed-inline3="{{computeInline(value, add,
+ divide)}}"
computedattribute$="{{computeInline(value, add,divide)}}"
+ computedattribute2$="{{computeInline(
+ value, add, divide)}}"
neg-computed-inline="{{!computeInline(value,add,divide)}}"
computed-negative-number="{{computeNegativeNumber(-1)}}"
computed-negative-literal="{{computeNegativeNumber(-A)}}"
@@ -23,6 +27,8 @@
computed-from-tricky-function='{{$computeTrickyFunctionFromLiterals( 3, "foo")}}'
computed-from-tricky-literals="{{computeFromTrickyLiterals(3, 'tricky\,\'zot\'')}}"
computed-from-tricky-literals2='{{computeFromTrickyLiterals(3,"tricky\,'zot'" )}}'
+ computed-from-tricky-literals3='{{computeFromTrickyLiterals(3,
+ "tricky\,'zot'" )}}'
computed-from-no-args="{{computeFromNoArgs( )}}"
no-computed="{{foobared(noInlineComputed)}}"
compoundAttr1$="{{cpnd1}}{{ cpnd2 }}{{cpnd3.prop}}{{ computeCompound(cpnd4, cpnd5, 'literal')}}"
diff --git a/test/unit/bind.html b/test/unit/bind.html
index 7be58b89..dd0cb055 100644
--- a/test/unit/bind.html
+++ b/test/unit/bind.html
@@ -173,6 +173,7 @@ suite('single-element binding effects', function() {
assert.equal(el.$.boundChild.computedFromTrickyFunction, '3foo', 'Wrong result from tricky function with pure literal arg computation');
assert.equal(el.$.boundChild.computedFromTrickyLiterals, '3tricky,\'zot\'', 'Wrong result from tricky literal arg computation');
assert.equal(el.$.boundChild.computedFromTrickyLiterals2, '3tricky,\'zot\'', 'Wrong result from tricky literal arg computation');
+ assert.equal(el.$.boundChild.computedFromTrickyLiterals3, '3tricky,\'zot\'', 'Wrong result from tricky literal arg computation');
assert.equal(el.$.computedContent.textContent, '3tricky,\'zot\'', 'Wrong textContent from tricky literal arg computation');
assert.equal(el.$.computedContent2.textContent, '(3', 'Wrong textContent from tricky literal arg computation');
});
@@ -224,6 +225,7 @@ suite('single-element binding effects', function() {
el.divide = 3;
assert.equal(el.$.boundChild.computedInline, 20, 'computedInline not correct');
assert.equal(el.$.boundChild.computedInline2, 20, 'computedInline2 not correct');
+ assert.equal(el.$.boundChild.computedInline3, 20, 'computedInline3 not correct');
assert.equal(el.$.boundChild.negComputedInline, false, 'negComputedInline not correct');
});
@@ -232,6 +234,7 @@ suite('single-element binding effects', function() {
el.add = 40;
el.divide = 3;
assert.equal(el.$.boundChild.getAttribute('computedattribute'), 20, 'computed attribute not correct');
+ assert.equal(el.$.boundChild.getAttribute('computedattribute2'), 20, 'computed attribute not correct');
});
test('annotated style attribute binding', function() {