function assert(that, success, actualValue, expectedValue, type, functionName/*="ok"*/, lineInfo/*=dynamic*/, stackIncrease/*=0*/) {
        if(!stackIncrease) stackIncrease = 1
        if(!functionName) functionName = "ok"
        if(!lineInfo)
            var lineInfoFuture = getLineInformation(functionName, stackIncrease, that.doSourcemappery, that.warningHandler)
        else
            var lineInfoFuture = Future(lineInfo)

        // reste timeouts up the chain
        var cur = that
        while(cur !== undefined) {
            setTesterTimeout(cur)
            cur = cur.parentTester
        }

        var emitData = lineInfoFuture.then(function(lineInfo) {
            var result = lineInfo
            result.type = 'assert'
            if(type !=='count') result.success = success === true

            if(actualValue !== undefined)     result.actual = actualValue
            if(expectedValue !== undefined)   result.expected = expectedValue

            result.parent = that.id
            result.time = now()

           return Future(result)
        })

        return that.manager.emit(type, emitData)
    }
function assert(that, success, actualValue, expectedValue, type, functionName, lineInfo, stackIncrease) {
        if(!stackIncrease) stackIncrease = 1
        if(!functionName) functionName = "ok"
        if(!lineInfo)
            var lineInfoFuture = getLineInformation(functionName, stackIncrease, that.doSourcemappery, that.warningHandler)
        else
            var lineInfoFuture = Future(lineInfo)

        
        var cur = that
        while(cur !== undefined) {
            setTesterTimeout(cur)
            cur = cur.parentTester
        }

        var emitData = lineInfoFuture.then(function(lineInfo) {
            var result = lineInfo
            result.type = 'assert'
            if(type !=='count') result.success = success === true

            if(actualValue !== undefined)     result.actual = actualValue
            if(expectedValue !== undefined)   result.expected = expectedValue

            result.parent = that.id
            result.time = now()

           return Future(result)
        })

        return that.manager.emit(type, emitData)
    }
function assert ( that , success , actualValue , expectedValue , type , functionName /*="ok"*/ , lineInfo /*=dynamic*/ , stackIncrease /*=0*/ ) { if ( ! stackIncrease ) stackIncrease = 1 if ( ! functionName ) functionName = "ok" if ( ! lineInfo ) var lineInfoFuture = getLineInformation ( functionName , stackIncrease , that . doSourcemappery , that . warningHandler ) else var lineInfoFuture = Future ( lineInfo ) // reste timeouts up the chain var cur = that while ( cur !== undefined ) { setTesterTimeout ( cur ) cur = cur . parentTester } var emitData = lineInfoFuture . then ( function ( lineInfo ) { var result = lineInfo result . type = 'assert' if ( type !== 'count' ) result . success = success === true if ( actualValue !== undefined ) result . actual = actualValue if ( expectedValue !== undefined ) result . expected = expectedValue result . parent = that . id result . time = now ( ) return Future ( result ) } ) return that . manager . emit ( type , emitData ) }
type - either "count" or "assert"
type - either count or assert