JSC::JSValue JSAudioNode::disconnect(JSC::ExecState* exec)
{    
    unsigned outputIndex = 0;
    if (exec->argumentCount() > 0)
        outputIndex = exec->argument(0).toInt32(exec);

    AudioNode* audioNode = static_cast<AudioNode*>(impl());
    audioNode->disconnect(outputIndex);
    return JSC::jsUndefined();
}
v8::Handle<v8::Value> V8AudioNode::disconnectCallback(const v8::Arguments& args)
{    
    unsigned output = 0;
    bool ok = false;
    if (args.Length() > 0) {
        output = toInt32(args[0], ok);
        if (!ok)
            return throwError("Invalid index parameters", V8Proxy::SyntaxError);
    }

    AudioNode* audioNode = toNative(args.Holder());
    bool success = audioNode->disconnect(output);
    if (!success)
        return throwError("Invalid index parameter", V8Proxy::SyntaxError);

    return v8::Undefined();
}