Skip to content

Instantly share code, notes, and snippets.

@frankiefu
Last active August 29, 2015 14:17
Show Gist options
  • Save frankiefu/ab7932dd26650ad0e3c9 to your computer and use it in GitHub Desktop.
Save frankiefu/ab7932dd26650ad0e3c9 to your computer and use it in GitHub Desktop.
<script>
Polymer({
is: 'x-expression',
properties: {
operator: String,
left: String,
right: String,
value: {
notify: true,
computed: 'computeValue(operator, left, right)'
}
},
binaryOperators: {
'+': function(l, r) { return l+r; },
'-': function(l, r) { return l-r; },
'*': function(l, r) { return l*r; },
'/': function(l, r) { return l/r; },
'%': function(l, r) { return l%r; },
'<': function(l, r) { return l<r; },
'>': function(l, r) { return l>r; },
'<=': function(l, r) { return l<=r; },
'>=': function(l, r) { return l>=r; },
'==': function(l, r) { return l==r; },
'!=': function(l, r) { return l!=r; },
'===': function(l, r) { return l===r; },
'!==': function(l, r) { return l!==r; },
'&&': function(l, r) { return l&&r; },
'||': function(l, r) { return l||r; }
},
computeValue: function(operator, left, right) {
var fn = this.binaryOperators[operator];
if (fn) {
return fn(left, right);
}
}
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment