Created
October 26, 2017 09:57
-
-
Save KiChjang/ac29766dc954f14ba3e456b3781bf419 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
unsafe extern fn open(cx: *mut JSContext, _obj: HandleObject, this: *const XMLHttpRequest, args: *const JSJitMethodCallArgs) -> bool { | |
return wrap_panic(panic::AssertUnwindSafe(|| { | |
let this = &*this; | |
let args = &*args; | |
let argc = args._base.argc_; | |
let argcount = cmp::min(argc, 5); | |
match argcount { | |
2 => { | |
let arg0: ByteString = match FromJSValConvertible::from_jsval(cx, args.get(0), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
}; | |
let arg1: USVString = match FromJSValConvertible::from_jsval(cx, args.get(1), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
}; | |
let result: Result<(), Error> = this.Open(arg0, arg1); | |
let result = match result { | |
Ok(result) => result, | |
Err(e) => { | |
throw_dom_exception(cx, &this.global(), e); | |
return false; | |
}, | |
}; | |
(result).to_jsval(cx, args.rval()); | |
return true; | |
} | |
3 => { | |
let arg0: ByteString = match FromJSValConvertible::from_jsval(cx, args.get(0), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
}; | |
let arg1: USVString = match FromJSValConvertible::from_jsval(cx, args.get(1), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
}; | |
let arg2: bool = match FromJSValConvertible::from_jsval(cx, args.get(2), ()) { | |
Ok(ConversionResult::Success(v)) => v, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
} | |
}; | |
let arg3: Option<USVString> = if args.get(3).is_undefined() { | |
None | |
} else { | |
match FromJSValConvertible::from_jsval(cx, args.get(3), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
} | |
}; | |
let arg4: Option<USVString> = if args.get(4).is_undefined() { | |
None | |
} else { | |
match FromJSValConvertible::from_jsval(cx, args.get(4), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
} | |
}; | |
let result: Result<(), Error> = this.Open_(arg0, arg1, arg2, arg3, arg4); | |
let result = match result { | |
Ok(result) => result, | |
Err(e) => { | |
throw_dom_exception(cx, &this.global(), e); | |
return false; | |
}, | |
}; | |
(result).to_jsval(cx, args.rval()); | |
return true; | |
} | |
4 => { | |
let arg0: ByteString = match FromJSValConvertible::from_jsval(cx, args.get(0), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
}; | |
let arg1: USVString = match FromJSValConvertible::from_jsval(cx, args.get(1), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
}; | |
let arg2: bool = match FromJSValConvertible::from_jsval(cx, args.get(2), ()) { | |
Ok(ConversionResult::Success(v)) => v, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
} | |
}; | |
let arg3: Option<USVString> = if args.get(3).is_undefined() { | |
None | |
} else { | |
match FromJSValConvertible::from_jsval(cx, args.get(3), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
} | |
}; | |
let arg4: Option<USVString> = if args.get(4).is_undefined() { | |
None | |
} else { | |
match FromJSValConvertible::from_jsval(cx, args.get(4), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
} | |
}; | |
let result: Result<(), Error> = this.Open_(arg0, arg1, arg2, arg3, arg4); | |
let result = match result { | |
Ok(result) => result, | |
Err(e) => { | |
throw_dom_exception(cx, &this.global(), e); | |
return false; | |
}, | |
}; | |
(result).to_jsval(cx, args.rval()); | |
return true; | |
} | |
5 => { | |
let arg0: ByteString = match FromJSValConvertible::from_jsval(cx, args.get(0), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
}; | |
let arg1: USVString = match FromJSValConvertible::from_jsval(cx, args.get(1), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
}; | |
let arg2: bool = match FromJSValConvertible::from_jsval(cx, args.get(2), ()) { | |
Ok(ConversionResult::Success(v)) => v, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
} | |
}; | |
let arg3: Option<USVString> = if args.get(3).is_undefined() { | |
None | |
} else { | |
match FromJSValConvertible::from_jsval(cx, args.get(3), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
} | |
}; | |
let arg4: Option<USVString> = if args.get(4).is_undefined() { | |
None | |
} else { | |
match FromJSValConvertible::from_jsval(cx, args.get(4), ()) { | |
Ok(ConversionResult::Success(strval)) => strval, | |
Ok(ConversionResult::Failure(error)) => { | |
throw_type_error(cx, &error); | |
return false; | |
} | |
_ => { return false; | |
}, | |
} | |
}; | |
let result: Result<(), Error> = this.Open_(arg0, arg1, arg2, arg3, arg4); | |
let result = match result { | |
Ok(result) => result, | |
Err(e) => { | |
throw_dom_exception(cx, &this.global(), e); | |
return false; | |
}, | |
}; | |
(result).to_jsval(cx, args.rval()); | |
return true; | |
} | |
_ => { | |
throw_type_error(cx, "Not enough arguments to \"XMLHttpRequest.open\"."); | |
return false; | |
} | |
} | |
}), false); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment