diff options
| author | Vojta Jina | 2012-03-07 17:07:25 -0800 |
|---|---|---|
| committer | Vojta Jina | 2012-03-08 11:39:03 -0800 |
| commit | b3750103cc2c696b4ecadd7eebc55a76fd528bce (patch) | |
| tree | f2f2cfc9e330db8a4615b61999c4391ef7040e4e /test/service/parseSpec.js | |
| parent | b348347dadfa0abe3442ff0bdbc52d8077621e95 (diff) | |
| download | angular.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.js | 11 |
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); }); |
