From c00255c355ab32f7b19f21e9797a8fb83827d0be Mon Sep 17 00:00:00 2001 From: JustOff Date: Wed, 13 Mar 2019 21:44:49 +0200 Subject: Align IDL record to C++ conversion with the spec when Symbol-named properties are involved --- dom/bindings/Codegen.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/dom/bindings/Codegen.py b/dom/bindings/Codegen.py index e32d16a48..74acb5918 100644 --- a/dom/bindings/Codegen.py +++ b/dom/bindings/Codegen.py @@ -4808,10 +4808,8 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None, JS::Rooted recordObj(cx, &$${val}.toObject()); JS::AutoIdVector ids(cx); - // Keep skipping symbols until - // https://github.com/heycam/webidl/issues/294 is sorted out. if (!js::GetPropertyKeys(cx, recordObj, - JSITER_OWNONLY | JSITER_HIDDEN, &ids)) { + JSITER_OWNONLY | JSITER_HIDDEN | JSITER_SYMBOLS, &ids)) { $*{exceptionCode} } if (!recordEntries.SetCapacity(ids.length(), mozilla::fallible)) { @@ -4831,8 +4829,6 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None, for (size_t i = 0; i < ids.length(); ++i) { curId = ids[i]; - MOZ_ASSERT(!JSID_IS_SYMBOL(curId), "No symbols, we said!"); - JS::Rooted desc(cx); if (!JS_GetOwnPropertyDescriptorById(cx, recordObj, curId, &desc)) { @@ -4846,6 +4842,8 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None, idVal = js::IdToValue(curId); ${keyType} propName; + // This will just throw if idVal is a Symbol, like the spec says + // to do. if (!${keyConversionFunction}(cx, idVal, propName)) { $*{exceptionCode} } -- cgit v1.2.3