       # TODO: take into account fakes (using better pairs function) and new lines
       rhs = fake_()
     compiled = definitionPairCompile ctx, lhs, rhs
-    if ctx.isRequesting()
-      break
+    # TODO: this is not possible anymore due to submodules possibly coming after req
+    # if ctx.isRequesting()
+    #   break
     compiled)
 
   if ctx.isRequesting()
-    []
+    return []
 
   shouldRecompile = yes
   while shouldRecompile

    if cond is 'true'
      return branch
  (jsConditional condCasePairs, elseCase)

ms.req = ms_req = (ctx, call) ->
  reqTuple = ctx.definitionPattern()

    @_declare name, declaration

  declareAsFinal: (name, scopeIndex) ->
    declaration = @savedDeclaration name, scopeIndex
    declaration.final = yes
    declaration.exported or= @_exporting

  _declare: (name, declaration) ->
    declaration.id ?= @freshId()
