mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-09 21:00:42 +02:00
--HG-- extra : commitid : yWjnDGhk9j extra : rebase_source : 24228660defd6971a621d52eee0b79be823c6926 extra : amend_source : ef8de24265fa9026b0f764a63453b816442f7232 extra : source : 3958782fe187026cbc3755ad6eae6920e67fa7d2
29 lines
900 B
JavaScript
29 lines
900 B
JavaScript
"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();
|
|
}
|