From b9528dcb397e25ad62acaec8e2062708dfbc96f0 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Sat, 7 Nov 2015 13:25:38 -0700 Subject: [PATCH] Cancel ViewRegistry animation frames between specs --- src/view-registry.coffee | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/view-registry.coffee b/src/view-registry.coffee index 49ec29247..ba8657614 100644 --- a/src/view-registry.coffee +++ b/src/view-registry.coffee @@ -43,7 +43,7 @@ _ = require 'underscore-plus' # ``` module.exports = class ViewRegistry - documentUpdateRequested: false + animationFrameRequest: null documentReadInProgress: false performDocumentPollAfterUpdate: false debouncedPerformDocumentPoll: null @@ -203,16 +203,16 @@ class ViewRegistry @documentReaders = [] @documentWriters = [] @documentPollers = [] - @documentUpdateRequested = false + if @animationFrameRequest? + cancelAnimationFrame(@animationFrameRequest) + @animationFrameRequest = null @stopPollingDocument() requestDocumentUpdate: -> - unless @documentUpdateRequested - @documentUpdateRequested = true - requestAnimationFrame(@performDocumentUpdate) + @animationFrameRequest ?= requestAnimationFrame(@performDocumentUpdate) performDocumentUpdate: => - @documentUpdateRequested = false + @animationFrameRequest = null writer() while writer = @documentWriters.shift() @documentReadInProgress = true @@ -238,7 +238,7 @@ class ViewRegistry @observer.disconnect() requestDocumentPoll: => - if @documentUpdateRequested + if @animationFrameRequest? @performDocumentPollAfterUpdate = true else @debouncedPerformDocumentPoll()