static v8::Handle<v8::Value> sliceCallback(const v8::Arguments& args)
{
    if (args.Length() < 1)
        return throwNotEnoughArgumentsError(args.GetIsolate());
    ArrayBuffer* imp = V8ArrayBuffer::toNative(args.Holder());
    V8TRYCATCH(int, begin, toInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)));
    if (args.Length() <= 1) {
        return toV8(imp->slice(begin), args.Holder(), args.GetIsolate());
    }
    V8TRYCATCH(int, end, toInt32(MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined)));
    return toV8(imp->slice(begin, end), args.Holder(), args.GetIsolate());
}