 
   log: (msg) ->
     console.log "Sync: #{msg}" if @debug
-

    for own key, change of changes
      @log "handleStorageUpdate: #{key} <- #{change.newValue}"
      @storeAndPropagate key, change?.newValue
  
  # Only ever called from asynchronous synced-storage callbacks (fetchAsync and handleStorageUpdate).
  storeAndPropagate: (key, value) ->
    return if not key of Settings.defaults

  # However, if users have problems, they are unlikely to notice and make sense of console logs on
  # background pages.  So disable it, by default.
  # For genuine errors, we call console.log directly.
  debug: false
  storage: chrome.storage.sync
  doNotSync: [ "settingsVersion", "previousVersion" ]

