Bug 1391405: Part 6 - Use native helper for extracting enumerable properties. r?zombie
MozReview-Commit-ID: JqSrGUVVauE
--- a/toolkit/components/extensions/Schemas.jsm
+++ b/toolkit/components/extensions/Schemas.jsm
@@ -1551,32 +1551,17 @@ class ObjectType extends Type {
// object using a waiver wrapper.
let klass = ChromeUtils.getClassName(value, true);
if (klass != "Object") {
throw context.error(`Expected a plain JavaScript object, got a ${klass}`,
`be a plain JavaScript object`);
}
- let properties = Object.create(null);
-
- let waived = ChromeUtils.waiveXrays(value);
- for (let prop of Object.getOwnPropertyNames(waived)) {
- let desc = Object.getOwnPropertyDescriptor(waived, prop);
- if (desc.get || desc.set) {
- throw context.error("Objects cannot have getters or setters on properties",
- "contain no getter or setter properties");
- }
- // Chrome ignores non-enumerable properties.
- if (desc.enumerable) {
- properties[prop] = ChromeUtils.unwaiveXrays(desc.value);
- }
- }
-
- return properties;
+ return ChromeUtils.shallowClone(value);
}
checkProperty(context, prop, propType, result, properties, remainingProps) {
let {type, optional, unsupported, onError} = propType;
let error = null;
if (unsupported) {
if (prop in properties) {