   isInLateScope: ->
     @_scope().late
 
+  isInTopScope: ->
+    @_scope().topLevel
+
   declaration: (name) ->
     @_declarationInScope @scopes.length - 1, name
 

    @statement = []
    @cacheScopes = [[]]
    @_assignTos = []
    @scopes = [@_augmentScope builtInContext this] # dangerous passing itself in constructor

  macros: ->
    @_macros

  _shouldDeferIn: (scope) ->
    scope._defer

  addDeferredDefinition: (expression, dependencyName, lhs, rhs) ->
    @_scope().deferred.push [expression, dependencyName, lhs, rhs]

  deferred: ->
    @_scope().deferred
