aboutsummaryrefslogtreecommitdiffstats
path: root/src/ng/parse.js
AgeCommit message (Collapse)Author
2013-09-17fix($parse): disallow access to window and dom in expressionsChirayu Krishnappa
2013-08-15fix($parse): handle promises returned from parsed function callsJussi Kosunen
When a parsed function call returns a promise, the evaluated value is the resolved value of the promise rather than the promise object. Closes #3503
2013-08-13chore($parse): remove duplicate comment lineIgor Minar
2013-07-31fix($parse): unwrap promise when setting a fieldJames Davies
This fixes an inconsistency where you can't call the setter function when the expression resolves to a top level field name on a promise. Setting a field on an unresolved promise will throw an exception. (This shouldn't really happen in your template/js code and points to a programming error.) Closes #1827
2013-07-27docs(*): fixed typos and ngdoc parameter namesCarl Danley
2013-07-03fix($parse): disallow access to Function constructorChirayu Krishnappa
Enhances sandboxing of Angular Expressions to prevent attacks via: {}.toString.constructor(alert("evil JS code"))
2013-06-24fix($parse): move global getter out of parse.jsChirayu Krishnappa
2013-06-17chore(minErr): replace ngError with minErrKen Sheedlo
2013-05-24feat(ngError): add error message compression and better error messagesIgor Minar
- add toThrowNg matcher
2013-05-16feat($parse): add support for ternary operators to parserZach Snow
Add '?' token to lexer, add ternary rule to parser at (hopefully) proper precedence and associativity (based on https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Operator_Precedence). Since (exp1 && exp2 || exp3) is supported by the parser, and (exp1 ? exp2 : exp3) works the same way, it seems reasonable to add this minor form of control to templates (see #719).
2013-05-09style(*): fix up semicolon and var usageAnatoly Shikolay
2013-04-29fix(parse): Fix context access and double function callLucas Galfasó
Fix a context duplication and invocation to a previous context when doing an access modifier function on the result of a function Currently, when doing `foo().bar()`, `foo` is called twice, the first time to get the context and the second one for `bar` to get the underlying object. Then the call to `bar` is called using the second instance as self This is equivalent to doing: ``` var instance1 = foo(); var instance2 = foo(); instance2.bar.apply(instance1); ``` Closes #2496
2013-03-29docs(*): fixed typosPascal Borreli
2013-02-14feat($parse): added `constant` and `literal` propertiesDaniel Luz
* `literal` is set to true if the expression's top-level is a JavaScript literal (number, string, boolean, null/undefined, array, object), even if it contains non-literals inside. * `constant` is set to true if the expression is known to be made entirely of constant values, i.e., evaluating it will always yield the same result. A consequence is that a JSON expression is guaranteed to be both literal and constant.
2013-02-14docs($parse): document function argument types, fix minor typoDaniel Luz
2013-01-17feat($parse): allow strict equality in angular expressionsJeremy Tymes
Allows the parser to parse strict equality and inequality in angular expressions. Closes #908
2012-09-06fix($parser): string concatination with undefined modelpetrovalex
Closes #988
2012-06-12docs(*): simplify doc urlsIgor Minar
we now have two types of namespaces: - true namespace: angular.* - used for all global apis - virtual namespace: ng.*, ngMock.*, ... - used for all DI modules the virual namespaces have services under the second namespace level (e.g. ng.) and filters and directives prefixed with filter: and directive: respectively (e.g. ng.filter:orderBy, ng.directive:ngRepeat) this simplifies urls and makes them a lot shorter while still avoiding name collisions
2012-06-02doc(ngdoc): clean up doc generation and add missing documentation linksMisko Hevery
2012-06-02docs(expression): rewriteMisko Hevery
2012-05-05fix($parse): support methods on falsy primitive typesVojta Jina
e.g. zero, false, empty string - fix tests to be executed with csp true - fix cps (when more than 5 parts)
2012-04-27feat($parse): CSP compatibilityIgor Minar
CSP (content security policy) forbids apps to use eval or Function(string) generated functions (among other things). For us to be compatible, we just need to implement the "getterFn" in $parse without violating any of these restrictions. We currently use Function(string) generated functions as a speed optimization. With this change, it will be possible to opt into the CSP compatible mode using the ngCsp directive. When this mode is on Angular will evaluate all expressions up to 30% slower than in non-CSP mode, but no security violations will be raised. In order to use this feature put ngCsp directive on the root element of the application. For example: <!doctype html> <html ng-app ng-csp> ... ... </html> Closes #893
2012-04-10chore(*): remove dead code and fix code style issuesIgor Minar
2012-03-28refactor(fromJson): always use native JSON.parseIgor Minar
This breaks IE7 for which you can use polyfill: https://github.com/douglascrockford/JSON-js <!--[if lt IE 8]> <script src="json2.min.js"></script> <![endif]--> or http://bestiejs.github.com/json3/ <!--[if lt IE 8]> <script src="json3.min.js"></script> <![endif]-->
2012-03-28chore(module): move files around in preparation for more modulesMisko Hevery