( obj, parser, valueCacheVersions, key, runtimeTemplate, logger, asiSafe, objKeys )
| 170 | * @returns {string} code converted to string that evaluates |
| 171 | */ |
| 172 | const stringifyObj = ( |
| 173 | obj, |
| 174 | parser, |
| 175 | valueCacheVersions, |
| 176 | key, |
| 177 | runtimeTemplate, |
| 178 | logger, |
| 179 | asiSafe, |
| 180 | objKeys |
| 181 | ) => { |
| 182 | /** @type {string} */ |
| 183 | let code; |
| 184 | const arr = Array.isArray(obj); |
| 185 | if (arr) { |
| 186 | code = `[${obj |
| 187 | .map((code) => |
| 188 | toCode( |
| 189 | code, |
| 190 | parser, |
| 191 | valueCacheVersions, |
| 192 | key, |
| 193 | runtimeTemplate, |
| 194 | logger, |
| 195 | null |
| 196 | ) |
| 197 | ) |
| 198 | .join(class="st">",")}]`; |
| 199 | } else { |
| 200 | let keys = Object.keys(obj); |
| 201 | if (objKeys) { |
| 202 | keys = objKeys.size === 0 ? [] : keys.filter((k) => objKeys.has(k)); |
| 203 | } |
| 204 | code = `{${keys |
| 205 | .map((key) => { |
| 206 | const code = obj[key]; |
| 207 | return `${key === class="st">"__proto__" ? class="st">'["__proto__"]' : JSON.stringify(key)}:${toCode( |
| 208 | code, |
| 209 | parser, |
| 210 | valueCacheVersions, |
| 211 | key, |
| 212 | runtimeTemplate, |
| 213 | logger, |
| 214 | null |
| 215 | )}`; |
| 216 | }) |
| 217 | .join(class="st">",")}}`; |
| 218 | } |
| 219 | |
| 220 | switch (asiSafe) { |
| 221 | case null: |
| 222 | return code; |
| 223 | case true: |
| 224 | return arr ? code : `(${code})`; |
| 225 | case false: |
| 226 | return arr ? `;${code}` : `;(${code})`; |
| 227 | default: |
| 228 | return `/*#__PURE__*/Object(${code})`; |
| 229 | } |
no test coverage detected