MCPcopy Index your code
hub / github.com/bigskysoftware/_hyperscript / parse

Method parse

www/js/_hyperscript.js:8361–8404  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

8359 this.args = { target: targetExpr };
8360 }
8361 static parse(parser) {
8362 if (!parser.matchToken("measure")) return;
8363 var targetExpr;
8364 var propsToMeasure = [];
8365 var MEASURE_PROPS = [
8366 "x",
8367 "y",
8368 "left",
8369 "top",
8370 "right",
8371 "bottom",
8372 "width",
8373 "height",
8374 "bounds",
8375 "scrollLeft",
8376 "scrollTop",
8377 "scrollLeftMax",
8378 "scrollTopMax",
8379 "scrollWidth",
8380 "scrollHeight",
8381 "scroll"
8382 ];
8383 if (parser.commandBoundary(parser.currentToken())) {
8384 targetExpr = parser.parseElement("implicitMeTarget");
8385 } else {
8386 var expr = parser.requireElement("expression");
8387 if (expr.type === "symbol" && MEASURE_PROPS.includes(expr.name)) {
8388 targetExpr = parser.parseElement("implicitMeTarget");
8389 propsToMeasure.push(expr.name);
8390 } else if (expr.type === "possessive" && expr.prop) {
8391 targetExpr = expr.root;
8392 propsToMeasure.push(expr.prop.value);
8393 } else if (expr.type === "ofExpression" && expr.prop) {
8394 targetExpr = expr.root;
8395 propsToMeasure.push(expr.prop.value);
8396 } else {
8397 targetExpr = expr;
8398 }
8399 }
8400 while (parser.matchOpToken(",")) {
8401 propsToMeasure.push(parser.requireTokenType("IDENTIFIER").value);
8402 }
8403 return new _MeasureCommand(targetExpr, propsToMeasure);
8404 }
8405 resolve(ctx, { target }) {
8406 ctx.meta.runtime.nullCheck(target, this.targetExpr);
8407 if (0 in target) target = target[0];

Callers

nothing calls this directly

Calls 7

matchTokenMethod · 0.45
commandBoundaryMethod · 0.45
currentTokenMethod · 0.45
parseElementMethod · 0.45
requireElementMethod · 0.45
matchOpTokenMethod · 0.45
requireTokenTypeMethod · 0.45

Tested by

no test coverage detected