aboutsummaryrefslogtreecommitdiffstats
path: root/test/ng/rootScopeSpec.js
AgeCommit message (Collapse)Author
2014-03-20test($rootScope): add assertion to test ensuring that NaN -> NaN does not throwCaitlin Potter
https://github.com/angular/angular.js/commit/fb6062fb9d83545730b993e94ac7482ffd43a62c implements a fix for NaN values causing $watchCollection to throw an infdig error. This change updates the test by adding an assertion which explains what is actually being tested a bit better, and may also provide better information in the event that the test ever fails. Closes #6758
2014-03-19fix($rootScope): ng-repeat can't handle NaN values. #4605Sekib Omazic
$watchCollection checks if oldValue !== newValue which does not work for NaN. This was causing infinite digest errors, since comparing NaN to NaN in $watchCollection would always return false, indicating that a change was occuring on each loop. This fix adds a simple check to see if the current value and previous value are both NaN, and if so, does not count it as a change. Closes #4605
2014-03-18fix(Scope): $watchCollection should call listener with oldValueIgor Minar
Originally we destroyed the oldValue by incrementaly copying over portions of the newValue into the oldValue during dirty-checking, this resulted in oldValue to be equal to newValue by the time we called the watchCollection listener. The fix creates a copy of the newValue each time a change is detected and then uses that copy *the next time* a change is detected. To make `$watchCollection` behave the same way as `$watch`, during the first iteration the listener is called with newValue and oldValue being identical. Since many of the corner-cases are already covered by existing tests, I refactored the test logging to include oldValue and made the tests more readable. Closes #2621 Closes #5661 Closes #5688 Closes #6736
2014-01-13fix($rootScope): prevent infinite $digest by checking if asyncQueue is empty ↵Noam Lewis
when decrementing ttl An infinite $digest loop can be caused by expressions that invoke a promise. The problem is that $digest does not decrement ttl unless it finds dirty changes; it should check also if asyncQueue is empty. Generally the condition for decrementing ttl should be the same as the condition for terminating the $digest loop. Fixes #2622
2014-01-02fix(Scope): don't let watch deregistration mess up the dirty-checking digest ↵Igor Minar
loop Closes #5525
2014-01-02test(rootScope): reorganize $watch deregistration specs into a describeIgor Minar
2013-12-27perf(Scope): limit propagation of $broadcast to scopes that have listeners ↵Karl Seamon
for the event Update $on and $destroy to maintain a count of event keys registered for each scope and its children. $broadcast will not descend past a node that has a count of 0/undefined for the $broadcasted event key. Closes #5341 Closes #5371
2013-12-05chore(Scope): short-circuit after dirty-checking last dirty watcherKarl Seamon
Stop dirty-checking during $digest after the last dirty watcher has been re-checked. This prevents unneeded re-checking of the remaining watchers (They were already checked in the previous iteration), bringing a substantial performance improvement to the average case run time of $digest. Closes #5272 Closes #5287
2013-12-04fix($rootScope): broadcast $destroy event on $rootScopeJeff Cross
Fixes #5169
2013-12-04fix($rootScope): clear phase if an exception is raised by a watcherThomas Guillory
Add calls to clearPhase() when an exception is raised by a watcher while a digest cycle, in order to not be stuck on `$digest` scope phase
2013-10-05fix(rootScope): make stopPropagation only stop its own eventPete Bacon Darwin
All sibling event handlers residing on the same scope to were stopped if one of them called stopPropagation. Closes #4204
2013-10-02fix($scope): $evalAsync executes on the right scopeLucas Galfasó
Executes $evalAsync at the scope that the call was made Closes: #3548
2013-10-02style(rootScopeSpec): add semi-colonsPete Bacon Darwin
2013-09-03chore($rootScope): provide support to execute a function after the digest ↵Matias Niemelä
cycle is complete
2013-08-27test(Scope): fix tests after reverting commitsIgor Minar
Making assertions on state (rather than interactions) is better anyway.
2013-08-26feat(Scope): async auto-flush $evalAsync queue when outside of $digestIgor Minar
This change causes a new $digest to be scheduled in the next tick if a task was was sent to the $evalAsync queue from outside of a $digest or an $apply. While this mode of operation is not common for most of the user code, this change means that $q promises that utilze $evalAsync queue to guarantee asynchronicity of promise apis will now also resolve outside of a $digest, which turned out to be a big pain point for some developers. The implementation ensures that we don't do more work than needed and that we coalese as much work as possible into a single $digest. The use of $browser instead of setTimeout ensures that we can mock out and control the scheduling of "auto-flush", which should in theory allow all of the existing code and tests to work without negative side-effects. Closes #3539 Closes #2438
2013-08-15feat(minerr): log minerr doc url in developmentKen Sheedlo
Closes #3566
2013-07-22fix(Scope): ensure that isolate scopes use the main evalAsync queueIgor Minar
Previously any $evalAsync task scheduled from a isolate scope or a child of an isolate scope would never execute because we never flushed this queue
2013-07-11fix(scope): watches can be safely unregistered inside watch handlersPaulo Scardine
Closes #2915
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-02fix($rootScope) ensure $watchCollection correctly handles arrayLike objectsGonzalo Ruiz de Villa
2013-04-02feat(ngdocs): added functionality to import and extract contents of external ↵Matias Niemelä
files inside docs comment code
2013-03-29feat(Scope): add $watchCollection method for observing collectionsMatias Niemelä
The new method allows to shallow watch collections (Arrays/Maps).
2013-02-14feat(scope): only evaluate constant $watch expressions onceDaniel Luz
2013-02-14fix($rootScope): minor typo fixesDaniel Luz
2012-11-30fix(Scope): ensure that a scope is destroyed only onceIgor Minar
Due to bd524fc4 calling $destroy() on a scope mupltiple times cases NPE. Closes #1627
2012-11-25fix(Scope): allow removing a listener during eventVojta Jina
2012-09-11fix($evalAsync): have only one global async queueMisko Hevery
Having one async queue per scope complicates the matters when users wish to do partial scope updates, since many services put events on the rootScope. By having single queue the programing model is simplified.
2012-08-27fix(docs) typoMisko Hevery
2012-05-23fix($rootScope): TTL exception does not clear $$phaseMisko Hevery
When $digest() throws infinite digest exception it does not properly clear the $phase leaving the scope in an inconsistent state. Closes #979
2012-05-17feat(scope): add event.preventDefault() and event.defaultPreventedVojta Jina
2012-05-17refactor(scope.$emit): rename event.cancel() to event.stopPropagation()Vojta Jina
Breaks event.cancel() is event.stopPropagation()
2012-03-28chore(module): move files around in preparation for more modulesMisko Hevery