         for reactiveName, reactiveSpec of reactiveSpecByName
             @reactives[reactiveName] = do (reactiveName, reactiveSpec) => J.AutoVar(
                 =>
-                    if componentDebug then console.log _getDebugPrefix(@), "!#{reactiveName}()"
-                    _debugDepth += 1
+                    _pushDebugFlag reactiveSpec.debug ? componentSpec.debug
+                    if componentDebug
+                        console.log _getDebugPrefix(@), "!#{reactiveName}()"
+                        _debugDepth += 1
+
                     ret = reactiveSpec.val.call @
-                    if componentDebug then console.log _getDebugPrefix(), ret
-                    _debugDepth -= 1
+
+                    if componentDebug
+                        console.log _getDebugPrefix(), ret
+                        _debugDepth -= 1
+                    _popDebugFlag()
+
                     ret
                 (
                     if reactiveSpec.onChange? then (oldValue, newValue) =>

                    stateFromRoute[stateFieldName]
                else if _.isFunction stateFieldSpec.default
                    # TODO: If the type is J.$function then use the other if-branch
                    if componentDebug then console.log _getDebugPrefix(@), "#{stateFieldName} !default()"
                    _debugDepth += 1
                    ret = stateFieldSpec.default.apply @
                    if componentDebug then console.log _getDebugPrefix(), ret
                    _debugDepth -= 1
                    ret
                else
                    stateFieldSpec.default

    delete reactSpec.props
    delete reactSpec.state
    delete reactSpec.reactives
    delete reactSpec.debug

    reactSpec.displayName = componentName

