@@ -37,6 +37,17 @@ describe("The 'getStaticValue' function", () => {
3737 { code : "1 ^ 15" , expected : { value : 14 } } ,
3838 { code : "3 & 2" , expected : { value : 2 } } ,
3939 { code : "a + 1" , expected : null } ,
40+ {
41+ code : "(123.456).toExponential()" ,
42+ expected : { value : "1.23456e+2" } ,
43+ } ,
44+ { code : "(123.456).toExponential(3)" , expected : { value : "1.235e+2" } } ,
45+ { code : "(123.456).toFixed()" , expected : { value : "123" } } ,
46+ { code : "(123.456).toFixed(1)" , expected : { value : "123.5" } } ,
47+ { code : "(123.456).toPrecision()" , expected : { value : "123.456" } } ,
48+ { code : "(123.456).toPrecision(2)" , expected : { value : "1.2e+2" } } ,
49+ { code : "(123.456).toString()" , expected : { value : "123.456" } } ,
50+ { code : "(123).toString(16)" , expected : { value : "7b" } } ,
4051 { code : "String(7)" , expected : { value : "7" } } ,
4152 { code : "Math.round(0.7)" , expected : { value : 1 } } ,
4253 { code : "Math['round'](0.4)" , expected : { value : 0 } } ,
@@ -84,6 +95,50 @@ describe("The 'getStaticValue' function", () => {
8495 { code : "Object.xxx" , expected : { value : undefined } } ,
8596 { code : "new Array(2)" , expected : null } ,
8697 { code : "new Array(len)" , expected : null } ,
98+ { code : "Array.of()" , expected : { value : [ ] } } ,
99+ { code : "Array.of(1)" , expected : { value : [ 1 ] } } ,
100+ { code : "Array.of(1, 2)" , expected : { value : [ 1 , 2 ] } } ,
101+ {
102+ code : "[0,1,2].at(-1)" ,
103+ expected : Array . prototype . at ? { value : 2 } : null ,
104+ } ,
105+ {
106+ code : "[0,1,2].concat([3,4], [5])" ,
107+ expected : { value : [ 0 , 1 , 2 , 3 , 4 , 5 ] } ,
108+ } ,
109+ { code : "[0,1,2].every(Boolean)" , expected : { value : false } } ,
110+ { code : "[0,1,2].filter(Boolean)" , expected : { value : [ 1 , 2 ] } } ,
111+ { code : "[0,1,2].find((i) => i === 2)" , expected : null } ,
112+ { code : "[0,1,2].findIndex((i) => i === 2)" , expected : null } ,
113+ {
114+ code : "[-1, [0,1,2], [[4]]].flat()" ,
115+ expected : { value : [ - 1 , 0 , 1 , 2 , [ 4 ] ] } ,
116+ } ,
117+ { code : "[0,1,2].includes(4)" , expected : { value : false } } ,
118+ { code : "[0,1,2].indexOf(4)" , expected : { value : - 1 } } ,
119+ { code : "[0,1,2].join()" , expected : { value : "0,1,2" } } ,
120+ { code : "[0,1,2].join('|')" , expected : { value : "0|1|2" } } ,
121+ { code : "[1,1,1].lastIndexOf(1)" , expected : { value : 2 } } ,
122+ { code : "[0,1,2].slice(1)" , expected : { value : [ 1 , 2 ] } } ,
123+ { code : "[0,1,2].some(Boolean)" , expected : { value : true } } ,
124+ { code : "[0,1,2].toString()" , expected : { value : "0,1,2" } } ,
125+ { code : "String([0,1,2])" , expected : { value : "0,1,2" } } ,
126+ { code : "[...[0,1,,2].keys()]" , expected : { value : [ 0 , 1 , 2 , 3 ] } } ,
127+ {
128+ code : "[...[0,1,,2].values()]" ,
129+ expected : { value : [ 0 , 1 , undefined , 2 ] } ,
130+ } ,
131+ {
132+ code : "[...[0,1,,2].entries()]" ,
133+ expected : {
134+ value : [
135+ [ 0 , 0 ] ,
136+ [ 1 , 1 ] ,
137+ [ 2 , undefined ] ,
138+ [ 3 , 2 ] ,
139+ ] ,
140+ } ,
141+ } ,
87142 { code : "({})" , expected : { value : { } } } ,
88143 {
89144 code : "({a: 1, b: 2, c: 3})" ,
@@ -105,6 +160,12 @@ describe("The 'getStaticValue' function", () => {
105160 { code : "String.raw`\\unicode`" , expected : { value : "\\unicode" } } ,
106161 { code : "`he${a}o`" , expected : null } , //eslint-disable-line no-template-curly-in-string
107162 { code : "x`hello`" , expected : null } ,
163+ { code : "' foo '.trim()" , expected : { value : "foo" } } ,
164+ { code : "' foo '.trim().toUpperCase()" , expected : { value : "FOO" } } ,
165+ { code : "' foo '.indexOf('f')" , expected : { value : 2 } } ,
166+ { code : "' foo '.charAt(4)" , expected : { value : "o" } } ,
167+ { code : "' foo '.charCodeAt(400)" , expected : { value : NaN } } ,
168+ { code : "' foo '.repeat(1e12)" , expected : null } ,
108169 { code : "-1" , expected : { value : - 1 } } ,
109170 { code : "+'1'" , expected : { value : 1 } } ,
110171 { code : "!0" , expected : { value : true } } ,
@@ -243,6 +304,31 @@ const aMap = Object.freeze({
243304 code : "({'a': 1, 1e+1: 2, 2n: 3})" ,
244305 expected : { value : { a : 1 , 10 : 2 , 2 : 3 } } ,
245306 } ,
307+ {
308+ code : "new Set([1,2])" ,
309+ expected : { value : new Set ( [ 1 , 2 ] ) } ,
310+ } ,
311+ {
312+ code : "new Set([1,2]).has(2)" ,
313+ expected : { value : true } ,
314+ } ,
315+ {
316+ code : "new Map([[1,2], [4,6]])" ,
317+ expected : {
318+ value : new Map ( [
319+ [ 1 , 2 ] ,
320+ [ 4 , 6 ] ,
321+ ] ) ,
322+ } ,
323+ } ,
324+ {
325+ code : "const m = new Map([[1,2], [4,6]]); m.get(1)" ,
326+ expected : { value : 2 } ,
327+ } ,
328+ {
329+ code : "const m = new Map([[1,2], [4,6]]); m.has(2)" ,
330+ expected : { value : false } ,
331+ } ,
246332 ...( semver . gte ( eslint . Linter . version , "8.0.0" )
247333 ? [
248334 {
0 commit comments