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

Method setSymbol

www/js/_hyperscript.esm.js:2340–2380  ·  view source on GitHub ↗
(str, context, type, value, targetElement)

Source from the content-addressed store, hash-verified

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