     _(@scopes[0]).extend(newScope)
 
   pop: ->
+    Liquid.log "SCOPE POP"
     throw new Error("ContextError") if @scopes.length <= 1
     @scopes.shift()
 

  # Only allow String, Numeric, Hash, Array, Proc, Boolean
  # or <tt>Liquid::Drop</tt>
  set: (key, value) ->
    @scopes[0][key] = value

  get: (key) ->
    @resolve(key)

  hasKey: (key) ->
    !!@resolve(key)

      @push(newScope)
      result = f()

      if futures.future.isFuture(result)
        popLater = true
        result.when => @pop()

      result
    finally
