         return null if @errors.length > 0
         return @_make()
     get_window: -> return __proto__: window
-    get_require: -> throw new AbstractMethodError()
+    get_require: -> throw new AbstractMethodError("get_require")
     _fail: (reason) ->
         @errors.push(reason)
         throw reason
-    _check: (result) -> throw new AbstractMethodError()
-    _make: -> throw new AbstractMethodError()
+    _check: (result) -> throw new AbstractMethodError("_check")
+    _make: -> throw new AbstractMethodError("_make")
 
 class CJSEvaluator extends BasicEvaluator
     constructor: (options) ->

class AbstractMethodError extends Error
    constructor: ->
        @name = "AbstractMethodError"
        @message = "Calling abstract method detected."

class UndeclaredRequireError extends Error
    constructor: (@self_name, @require_name) ->

        @this = {}
        @window = @get_window()
        @errors = []
    render: ->  throw new AbstractMethodError("render")
    run: ->
        code = @render()
        func = new Function(code)
