aboutsummaryrefslogtreecommitdiffstats
path: root/test/service/parseSpec.js
diff options
context:
space:
mode:
authorVojta Jina2012-03-07 17:07:25 -0800
committerVojta Jina2012-03-08 11:39:03 -0800
commitb3750103cc2c696b4ecadd7eebc55a76fd528bce (patch)
treef2f2cfc9e330db8a4615b61999c4391ef7040e4e /test/service/parseSpec.js
parentb348347dadfa0abe3442ff0bdbc52d8077621e95 (diff)
downloadangular.js-b3750103cc2c696b4ecadd7eebc55a76fd528bce.tar.bz2
fix($parse): Allow property names that collide with native object properties
I.e. constructor, toString, or watch on FF (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch) + optimize parser a bit to not create getter function for operators
Diffstat (limited to 'test/service/parseSpec.js')
-rw-r--r--test/service/parseSpec.js11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/service/parseSpec.js b/test/service/parseSpec.js
index cf3f2aa5..c98b180c 100644
--- a/test/service/parseSpec.js
+++ b/test/service/parseSpec.js
@@ -227,6 +227,17 @@ describe('parser', function() {
expect(scope.$eval("x.y.z", scope)).not.toBeDefined();
});
+ it('should support property names that colide with native object properties', function() {
+ // regression
+ scope.watch = 1;
+ scope.constructor = 2;
+ scope.toString = 3;
+
+ expect(scope.$eval('watch', scope)).toBe(1);
+ expect(scope.$eval('constructor', scope)).toBe(2);
+ expect(scope.$eval('toString', scope)).toBe(3);
+ });
+
it('should evaluate grouped expressions', function() {
expect(scope.$eval("(1+2)*3")).toEqual((1+2)*3);
});