 
 class ExampleWithHooks extends AroundBlock
   constructor: (@description, @beforeBlocks, @afterBlocks, @block)->
-  runMainBlock: (block, onFinish)-> new Example(block).run @assertions, @context, onFinish
+  runMainBlock: (block, onFinish)-> new Example(block).run @assertions, @binding, @bare, onFinish
   onAfterHooks: ->
     @handleResult()
     super

      block.description = description
    else
      block = description
    container.push block

  constructor: ->

  keepTryingCondition: =>
    @tryBlock @condition, (result)->
      (@runNextAsyncStep(); return) if result
      (@finish {timeout: true, @description}; return) if new Date().getTime() > @deadline
      setTimeout @keepTryingCondition, TICK

  finish: ->
    if @binding and not @bare
      (@binding[m] = b if b = @describeDsl[m]) for m in RESERVED_FOR_DESCRIPTION_DSL
      delete @binding[m] for m in RESERVED_FOR_EXAMPLE_DSL
    @onFinish.apply null, arguments

class ExampleDsl
  constructor: (@assert, @expect, @fail, @refute)-> @_asyncQueue_ = []
