From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../function/function-displayName-computed.js | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 js/src/jit-test/tests/function/function-displayName-computed.js (limited to 'js/src/jit-test/tests/function/function-displayName-computed.js') diff --git a/js/src/jit-test/tests/function/function-displayName-computed.js b/js/src/jit-test/tests/function/function-displayName-computed.js new file mode 100644 index 0000000000..d2f1a77eb8 --- /dev/null +++ b/js/src/jit-test/tests/function/function-displayName-computed.js @@ -0,0 +1,74 @@ +// |jit-test| skip-if: isLcovEnabled() +// Guessed Atoms tests. +// Test String literals +var obj = { + ["func"]: function() {return function() {} }, + ["arrowFunc"]: ()=>{return function() {} }, + ["method"]() {return function() {} }, + ["nonAnonymousFunc"]: function F() {return function() {} }, + get ["getter"]() {return function() {} }, +}; + + +assertEq(displayName(obj.func()), "func/<"); +assertEq(displayName(obj.arrowFunc()), "arrowFunc/<"); +assertEq(displayName(obj.method()), "method/<"); +assertEq(displayName(obj.nonAnonymousFunc()), "F/<"); + +// We don't support guessed name for accessor +assertEq(displayName(obj.getter), ""); + +let dummy = class { + ["func"]() {return function() {} } + ["arrowFunc"] = ()=>{return function() {} }; + ["method"]() {return function() {} } + get ["getter"]() {return function() {} } +}; + +dum = new dummy(); +assertEq(displayName(dum.func()), "func/<"); +// We don't support guessed name for class field with computed name +assertEq(displayName(dum.arrowFunc()), "dummy{return function() {}}, + [7] () {return function() {}}, + [8]: class {}, + [9]: function F() {return function() {}}, + [10]: class C{}, + get [11]() {return function() {}}, +}; +assertEq(displayName(objN[1]()), "1/<"); +assertEq(displayName(objN[5]()), "5/<"); +assertEq(displayName(objN[7]()), "7/<"); +assertEq(displayName(objN[8]), "8"); +assertEq(displayName(objN[9]()), "F/<"); +assertEq(displayName(objN[10]), "C"); +// We don't support guessed name for accessor +assertEq(displayName(objN[11]), "objN/<"); + +let foo = class { + [1] () {return function() {} } + [5] = ()=>{return function() {} }; + [7] () {return function() {} } + get [11]() {return function() {} } +}; + +f = new foo(); + +assertEq(displayName(f[1]()), "1/<"); +// We don't support guessed name for class field with computed name +assertEq(displayName(f[5]()), "foo