summaryrefslogtreecommitdiffstats
path: root/toolkit/modules/tests/xpcshell/test_ObjectUtils_strict.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /toolkit/modules/tests/xpcshell/test_ObjectUtils_strict.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'toolkit/modules/tests/xpcshell/test_ObjectUtils_strict.js')
-rw-r--r--toolkit/modules/tests/xpcshell/test_ObjectUtils_strict.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/toolkit/modules/tests/xpcshell/test_ObjectUtils_strict.js b/toolkit/modules/tests/xpcshell/test_ObjectUtils_strict.js
new file mode 100644
index 000000000..44572e600
--- /dev/null
+++ b/toolkit/modules/tests/xpcshell/test_ObjectUtils_strict.js
@@ -0,0 +1,29 @@
+"use strict";
+
+var {ObjectUtils} = Components.utils.import("resource://gre/modules/ObjectUtils.jsm", {});
+var {PromiseTestUtils} = Components.utils.import("resource://testing-common/PromiseTestUtils.jsm", {});
+
+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.
+ PromiseTestUtils.expectUncaughtRejection(/No such property: "b"/);
+ Assert.throws(() => strict.b, /No such property: "b"/);
+ "b" in strict; // Should not throw.
+ strict.b = 2;
+ strict.b; // Should not throw.
+
+ PromiseTestUtils.expectUncaughtRejection(/No such property: "c"/);
+ 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();
+}