[X2Go-Commits] [pale-moon] 101/294: Change JS to MozMap conversion to more closely follow the record<> spec
git-admin at x2go.org
git-admin at x2go.org
Sat Apr 27 08:57:55 CEST 2019
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch upstream/28.5.0
in repository pale-moon.
commit e17501d5ebc3eb019905be985a3addf3732b2fef
Author: JustOff <Off.Just.Off at gmail.com>
Date: Wed Mar 13 19:03:07 2019 +0200
Change JS to MozMap conversion to more closely follow the record<> spec
---
dom/bindings/Codegen.py | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-)
diff --git a/dom/bindings/Codegen.py b/dom/bindings/Codegen.py
index 378ecf7..1f0f2d9 100644
--- a/dom/bindings/Codegen.py
+++ b/dom/bindings/Codegen.py
@@ -4780,8 +4780,11 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None,
auto& mozMapEntries = ${mozMapRef}.Entries();
JS::Rooted<JSObject*> mozMapObj(cx, &$${val}.toObject());
- JS::Rooted<JS::IdVector> ids(cx, JS::IdVector(cx));
- if (!JS_Enumerate(cx, mozMapObj, &ids)) {
+ JS::AutoIdVector ids(cx);
+ // Keep skipping symbols until
+ // https://github.com/heycam/webidl/issues/294 is sorted out.
+ if (!js::GetPropertyKeys(cx, mozMapObj,
+ JSITER_OWNONLY | JSITER_HIDDEN, &ids)) {
$*{exceptionCode}
}
if (!mozMapEntries.SetCapacity(ids.length(), mozilla::fallible)) {
@@ -4793,14 +4796,29 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None,
JS::Rooted<jsid> curId(cx);
for (size_t i = 0; i < ids.length(); ++i) {
curId = ids[i];
+
+ MOZ_ASSERT(!JSID_IS_SYMBOL(curId), "No symbols, we said!");
+
+ JS::Rooted<JS::PropertyDescriptor> desc(cx);
+ if (!JS_GetOwnPropertyDescriptorById(cx, mozMapObj, curId,
+ &desc)) {
+ $*{exceptionCode}
+ }
+
+ if (!desc.object() /* == undefined in spec terms */ ||
+ !desc.enumerable()) {
+ continue;
+ }
+
binding_detail::FakeString propName;
bool isSymbol;
- if (!ConvertIdToString(cx, curId, propName, isSymbol) ||
- (!isSymbol && !JS_GetPropertyById(cx, mozMapObj, curId, &temp))) {
+ if (!ConvertIdToString(cx, curId, propName, isSymbol)) {
$*{exceptionCode}
}
- if (isSymbol) {
- continue;
+ MOZ_ASSERT(!isSymbol, "We said, no symbols!");
+
+ if (!JS_GetPropertyById(cx, mozMapObj, curId, &temp)) {
+ $*{exceptionCode}
}
// Safe to do an infallible append here, because we did a
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/pale-moon.git
More information about the x2go-commits
mailing list