Skip to content

Instantly share code, notes, and snippets.

@KiChjang
Created October 26, 2017 09:57
Show Gist options
  • Save KiChjang/ac29766dc954f14ba3e456b3781bf419 to your computer and use it in GitHub Desktop.
Save KiChjang/ac29766dc954f14ba3e456b3781bf419 to your computer and use it in GitHub Desktop.
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