diff options
author | Ms2ger <ms2ger@gmail.com> | 2014-04-18 10:16:21 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2014-04-18 10:18:24 +0200 |
commit | d53841b016d21ce08c80b1147456e85719637a12 (patch) | |
tree | 2f0fb36802c03e62c2d934fa9e1b0dced52f084f /src/components/script/dom/bindings/codegen/CodegenRust.py | |
parent | baa384536282ba042fe40e1e9e862e9cdcf01060 (diff) | |
download | servo-d53841b016d21ce08c80b1147456e85719637a12.tar.gz servo-d53841b016d21ce08c80b1147456e85719637a12.zip |
Handle exceptions from FindEnumStringIndex correctly.
The previous code would return success from the JSNative with a pending
exception, potentially leading to assertion failures inside the JS engine
later.
Diffstat (limited to 'src/components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 23ad1ecd9af..2110ab7ebd9 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -739,13 +739,14 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None, template = ( "match FindEnumStringIndex(cx, ${val}, %(values)s) {\n" - " Err(_) => { %(handleInvalidEnumValueCode)s },\n" + " Err(_) => { %(exceptionCode)s },\n" " Ok(None) => { %(handleInvalidEnumValueCode)s },\n" " Ok(Some(index)) => {\n" " //XXXjdm need some range checks up in here.\n" " ${declName} = cast::transmute(index);\n" " },\n" "}" % { "values" : enum + "Values::strings", + "exceptionCode" : exceptionCode, "handleInvalidEnumValueCode" : handleInvalidEnumValueCode }) if defaultValue is not None: |