MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / setSymbol

Method setSymbol

www/js/_hyperscript-max.js:2341–2381  ·  view source on GitHub ↗
(str, context, type, value, targetElement)

Source from the content-addressed store, hash-verified

2339 return val;
2340 }
2341 setSymbol(str, context, type, value, targetElement) {
2342 if (type === "global") {
2343 this.#globalScope[str] = value;
2344 this.reactivity.notifyGlobalSymbol(str);
2345 return;
2346 }
2347 if (type === "element") {
2348 this.#getElementScope(context)[str] = value;
2349 this.reactivity.notifyElementSymbol(str, context.meta.owner);
2350 return;
2351 }
2352 if (type === "inherited") {
2353 var inherited = this.#resolveInherited(str, context, targetElement);
2354 if (inherited.element) {
2355 this.getInternalData(inherited.element).elementScope[str] = value;
2356 this.reactivity.notifyElementSymbol(str, inherited.element);
2357 } else {
2358 var owner = targetElement || context.meta?.owner;
2359 if (owner) {
2360 var internalData = this.getInternalData(owner);
2361 if (!internalData.elementScope) internalData.elementScope = {};
2362 internalData.elementScope[str] = value;
2363 this.reactivity.notifyElementSymbol(str, owner);
2364 }
2365 }
2366 return;
2367 }
2368 if (this.#isHyperscriptContext(context) && !this.#isReservedWord(str) && typeof context.locals[str] !== "undefined") {
2369 context.locals[str] = value;
2370 return;
2371 }
2372 var elementScope = this.#getElementScope(context);
2373 if (typeof elementScope[str] !== "undefined") {
2374 elementScope[str] = value;
2375 this.reactivity.notifyElementSymbol(str, context.meta.owner);
2376 } else if (this.#isHyperscriptContext(context) && !this.#isReservedWord(str)) {
2377 context.locals[str] = value;
2378 } else {
2379 context[str] = value;
2380 }
2381 }
2382 getInternalData(elt) {
2383 if (!elt._hyperscript) {
2384 elt._hyperscript = {};

Callers 4

setMethod · 0.45
setMethod · 0.45
resolveMethod · 0.45
putIntoMethod · 0.45

Calls 7

#getElementScopeMethod · 0.95
#resolveInheritedMethod · 0.95
getInternalDataMethod · 0.95
#isHyperscriptContextMethod · 0.95
#isReservedWordMethod · 0.95
notifyGlobalSymbolMethod · 0.45
notifyElementSymbolMethod · 0.45

Tested by

no test coverage detected