aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2020-04-10 16:10:14 -0700
committerManish Goregaokar <manishsmail@gmail.com>2020-04-11 00:15:43 -0700
commit242b7f8fdc58ec7388edaadc2e94bf2a110f4315 (patch)
tree6f55f9cb65713a9d017a36a8106ae884ce1d19c5 /components/script/dom/bindings/codegen/CodegenRust.py
parent10a13ffa2016cb81419ae4aa622815f8645ad7f1 (diff)
downloadservo-242b7f8fdc58ec7388edaadc2e94bf2a110f4315.tar.gz
servo-242b7f8fdc58ec7388edaadc2e94bf2a110f4315.zip
Use FromJSValConvertible impls when converting arguments
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py13
1 files changed, 5 insertions, 8 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index a9642250770..b32fcd03439 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -1004,17 +1004,16 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None,
"yet")
enum = type.inner.identifier.name
if invalidEnumValueFatal:
- handleInvalidEnumValueCode = onFailureInvalidEnumValue(failureCode, 'search').define()
+ handleInvalidEnumValueCode = failureCode or "throw_type_error(*cx, &error); %s" % exceptionCode
else:
handleInvalidEnumValueCode = "return true;"
template = (
- "match find_enum_value(*cx, ${val}, %(pairs)s) {\n"
+ "match FromJSValConvertible::from_jsval(*cx, ${val}, ()) {"
" Err(_) => { %(exceptionCode)s },\n"
- " Ok((None, search)) => { %(handleInvalidEnumValueCode)s },\n"
- " Ok((Some(&value), _)) => value,\n"
- "}" % {"pairs": enum + "Values::pairs",
- "exceptionCode": exceptionCode,
+ " Ok(ConversionResult::Success(v)) => v,\n"
+ " Ok(ConversionResult::Failure(error)) => { %(handleInvalidEnumValueCode)s },\n"
+ "}" % {"exceptionCode": exceptionCode,
"handleInvalidEnumValueCode": handleInvalidEnumValueCode})
if defaultValue is not None:
@@ -2418,7 +2417,6 @@ def UnionTypes(descriptors, dictionaries, callbacks, typedefs, config):
'crate::dom::bindings::str::DOMString',
'crate::dom::bindings::str::USVString',
'crate::dom::bindings::trace::RootedTraceableBox',
- 'crate::dom::bindings::utils::find_enum_value',
'crate::dom::types::*',
'crate::dom::windowproxy::WindowProxy',
'crate::script_runtime::JSContext as SafeJSContext',
@@ -6158,7 +6156,6 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
'crate::dom::bindings::utils::ProtoOrIfaceArray',
'crate::dom::bindings::utils::enumerate_global',
'crate::dom::bindings::utils::finalize_global',
- 'crate::dom::bindings::utils::find_enum_value',
'crate::dom::bindings::utils::generic_getter',
'crate::dom::bindings::utils::generic_lenient_getter',
'crate::dom::bindings::utils::generic_lenient_setter',