MCPcopy
hub / github.com/webpack/webpack / evaluateInParser

Function evaluateInParser

test/JavascriptParser.unittest.js:442–475  ·  view source on GitHub ↗

* @param {string} source source * @returns {import("../lib/javascript/BasicEvaluatedExpression")} the evaluated expression

(source)

Source from the content-addressed store, hash-verified

440 * @returns {import("../lib/javascript/BasicEvaluatedExpression")} the evaluated expression
441 */
442 function evaluateInParser(source) {
443 const parser = new JavascriptParser();
444 parser.hooks.call.for("test").tap("JavascriptParserTest", (expr) => {
445 parser.state.result = parser.evaluateExpression(expr.arguments[0]);
446 });
447 parser.hooks.evaluateIdentifier
448 .for("aString")
449 .tap("JavascriptParserTest", (expr) =>
450 new BasicEvaluatedExpression()
451 .setString("aString")
452 .setRange(
453 /** @type {import("../lib/javascript/JavascriptParser").Range} */ (
454 expr.range
455 )
456 )
457 );
458 parser.hooks.evaluateIdentifier
459 .for("b.Number")
460 .tap("JavascriptParserTest", (expr) =>
461 new BasicEvaluatedExpression()
462 .setNumber(123)
463 .setRange(
464 /** @type {import("../lib/javascript/JavascriptParser").Range} */ (
465 expr.range
466 )
467 )
468 );
469 return parser.parse(
470 `test(${source});`,
471 /** @type {import("../lib/Parser").ParserState} */ (
472 /** @type {unknown} */ ({})
473 )
474 ).result;
475 }
476
477 const testCases = {
478 true: "bool=true",

Callers 1

Calls 6

evaluateExpressionMethod · 0.95
parseMethod · 0.95
tapMethod · 0.80
setRangeMethod · 0.80
setStringMethod · 0.80
setNumberMethod · 0.80

Tested by

no test coverage detected