tenfourfox/toolkit/modules/tests/xpcshell/test_ObjectUtils_strict.js
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

33 lines
882 B
JavaScript

"use strict";
var {ObjectUtils} = Components.utils.import("resource://gre/modules/ObjectUtils.jsm", {});
var {Promise} = Components.utils.import("resource://gre/modules/Promise.jsm", {});
add_task(function* init() {
// The code will cause uncaught rejections on purpose.
Promise.Debugging.clearUncaughtErrorObservers();
});
add_task(function* test_strict() {
let loose = { a: 1 };
let strict = ObjectUtils.strict(loose);
loose.a; // Should not throw.
loose.b || undefined; // Should not throw.
strict.a; // Should not throw.
Assert.throws(() => strict.b, /No such property: "b"/);
"b" in strict; // Should not throw.
strict.b = 2;
strict.b; // Should not throw.
Assert.throws(() => strict.c, /No such property: "c"/);
"c" in strict; // Should not throw.
loose.c = 3;
strict.c; // Should not throw.
});
function run_test() {
run_next_test();
}