From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../non262/extensions/function-definition-with.js | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 js/src/tests/non262/extensions/function-definition-with.js (limited to 'js/src/tests/non262/extensions/function-definition-with.js') diff --git a/js/src/tests/non262/extensions/function-definition-with.js b/js/src/tests/non262/extensions/function-definition-with.js new file mode 100644 index 0000000000..2277ad45fc --- /dev/null +++ b/js/src/tests/non262/extensions/function-definition-with.js @@ -0,0 +1,56 @@ +// |reftest| skip-if(!xulRuntime.shell) -- needs evaluate() +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 577325; +var summary = 'Implement the ES5 algorithm for processing function statements'; + +print(BUGNUMBER + ": " + summary); + +/************** + * BEGIN TEST * + **************/ + +var called, obj; + +function inFile1() { return "in file"; } +called = false; +obj = { set inFile1(v) { called = true; } }; +with (obj) { + function inFile1() { return "in file in with"; }; +} +assertEq(inFile1(), "in file in with"); +assertEq("set" in Object.getOwnPropertyDescriptor(obj, "inFile1"), true); +assertEq(called, false); + +evaluate("function notInFile1() { return 'not in file'; }"); +called = false; +obj = { set notInFile1(v) { called = true; return "not in file 2"; } }; +with (obj) { + function notInFile1() { return "not in file in with"; }; +} +assertEq(notInFile1(), "not in file in with"); +assertEq("set" in Object.getOwnPropertyDescriptor(obj, "notInFile1"), true); +assertEq(called, false); + +function inFile2() { return "in file 1"; } +called = false; +obj = + Object.defineProperty({}, "inFile2", + { value: 42, configurable: false, enumerable: false }); +with (obj) { + function inFile2() { return "in file 2"; }; +} +assertEq(inFile2(), "in file 2"); +assertEq(obj.inFile2, 42); + + +/******************************************************************************/ + +if (typeof reportCompare === "function") + reportCompare(true, true); + +print("All tests passed!"); -- cgit v1.2.3