diff options
author | Ms2ger <Ms2ger@gmail.com> | 2017-02-14 13:41:06 +0100 |
---|---|---|
committer | Ms2ger <Ms2ger@gmail.com> | 2017-02-16 11:03:19 +0100 |
commit | 7d24cd7752f8b4c030525612fb0fc3496d5fa169 (patch) | |
tree | 35255988be1639966fed9d6bead64f2a2920e619 /components/script/dom | |
parent | 2a50427b1e9e8cde9d4bacfcc3e7d5c526f299d7 (diff) | |
download | servo-7d24cd7752f8b4c030525612fb0fc3496d5fa169.tar.gz servo-7d24cd7752f8b4c030525612fb0fc3496d5fa169.zip |
Pass isMember to getJSToNativeConversionInfo for unions.
Also includes a documentation update for isMember.
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index b1f188a7b45..bd8232b2a75 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -581,11 +581,9 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None, If isDefinitelyObject is True, that means we know the value isObject() and we have no need to recheck that. - if isMember is True, we're being converted from a property of some - JS object, not from an actual method argument, so we can't rely on - our jsval being rooted or outliving us in any way. Any caller - passing true needs to ensure that it is handled correctly in - typeIsSequenceOrHasSequenceMember. + isMember is `False`, "Dictionary", "Union" or "Variadic", and affects + whether this function returns code suitable for an on-stack rooted binding + or suitable for storing in an appropriate larger structure. invalidEnumValueFatal controls whether an invalid enum value conversion attempt will throw (if true) or simply return without doing anything (if @@ -4059,7 +4057,8 @@ def getUnionTypeTemplateVars(type, descriptorProvider): info = getJSToNativeConversionInfo( type, descriptorProvider, failureCode="return Ok(None);", exceptionCode='return Err(());', - isDefinitelyObject=True) + isDefinitelyObject=True, + isMember="Union") template = info.template jsConversion = string.Template(template).substitute({ |