From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- .../debug/Object-getOwnPropertyNamesLength.js | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 js/src/jit-test/tests/debug/Object-getOwnPropertyNamesLength.js (limited to 'js/src/jit-test/tests/debug/Object-getOwnPropertyNamesLength.js') diff --git a/js/src/jit-test/tests/debug/Object-getOwnPropertyNamesLength.js b/js/src/jit-test/tests/debug/Object-getOwnPropertyNamesLength.js new file mode 100644 index 0000000000..0fe3ced1ba --- /dev/null +++ b/js/src/jit-test/tests/debug/Object-getOwnPropertyNamesLength.js @@ -0,0 +1,41 @@ +// Basic getOwnPropertyNamesLength tests. + +var g = newGlobal({ newCompartment: true }); +var dbg = Debugger(); +var gobj = dbg.addDebuggee(g); + +function testGetOwnPropertyLength(code) { + code = `(${code});`; + const expected = Object.getOwnPropertyNames(eval(code)).length; + g.eval(`obj = ${code}`); + const length = gobj + .getOwnPropertyDescriptor("obj") + .value.getOwnPropertyNamesLength(); + assertEq(length, expected, `Expected result for: ${code}`); +} + +testGetOwnPropertyLength("{}"); +testGetOwnPropertyLength("{a: 0, b: 1}"); +testGetOwnPropertyLength("{'name with space': 0}"); +testGetOwnPropertyLength("{get x() {}, set y(v) {}}"); +testGetOwnPropertyLength("{get x() { throw 'fit'; }}"); +testGetOwnPropertyLength("Object.create({a: 1})"); +testGetOwnPropertyLength("Object.create({get a() {}, set a(v) {}})"); +testGetOwnPropertyLength( + "(function () { var x = {a: 0, b: 1}; delete a; return x; })()" +); +testGetOwnPropertyLength("Object.create(null, {x: {value: 0}})"); +testGetOwnPropertyLength("[]"); +testGetOwnPropertyLength("[0, 1, 2]"); +testGetOwnPropertyLength("[,,,,,]"); +testGetOwnPropertyLength("/a*a/"); +testGetOwnPropertyLength("function () {}"); +testGetOwnPropertyLength( + `(function () { + var x = {}; + x[Symbol()] = 1; + x[Symbol.for('moon')] = 2; + x[Symbol.iterator] = 3; + return x; + })()` +); -- cgit v1.2.3