From 3d2f0f5ce1b61d16daa3f467ee4f15fc32365c5b Mon Sep 17 00:00:00 2001 From: Volker Schukai <volker.schukai@schukai.com> Date: Fri, 30 Dec 2022 16:04:42 +0100 Subject: [PATCH] fix: symbols must be identical across realms. --- application/source/data/datasource/storage.mjs | 2 +- application/source/dom/constants.mjs | 2 +- application/source/dom/customelement.mjs | 7 ++++--- application/source/text/formatter.mjs | 1 - application/source/types/node.mjs | 3 ++- development/test/cases/dom/customelement.mjs | 2 +- 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/application/source/data/datasource/storage.mjs b/application/source/data/datasource/storage.mjs index 17957f9a6..bf6bdcb52 100644 --- a/application/source/data/datasource/storage.mjs +++ b/application/source/data/datasource/storage.mjs @@ -15,7 +15,7 @@ export {Storage, storageObjectSymbol} * @private * @type {symbol} */ -const storageObjectSymbol = Symbol('storageObject'); +const storageObjectSymbol = Symbol.for ('@schukai/monster/data/datasource/storage/@@storageObject') /** * The class represents a record. diff --git a/application/source/dom/constants.mjs b/application/source/dom/constants.mjs index 859040aa8..c8c4a26c0 100644 --- a/application/source/dom/constants.mjs +++ b/application/source/dom/constants.mjs @@ -221,7 +221,7 @@ const ATTRIBUTE_ERRORMESSAGE = ATTRIBUTE_PREFIX + 'error'; * @license AGPLv3 * @since 1.24.0 */ -const objectUpdaterLinkSymbol = Symbol('monsterUpdater'); +const objectUpdaterLinkSymbol = Symbol.for('@schukai/monster/dom/@@object-updater-link'); /** * @memberOf Monster.DOM diff --git a/application/source/dom/customelement.mjs b/application/source/dom/customelement.mjs index 96ab3f1d7..27b58076a 100644 --- a/application/source/dom/customelement.mjs +++ b/application/source/dom/customelement.mjs @@ -27,26 +27,27 @@ import { import {findDocumentTemplate, Template} from "./template.mjs"; import {Updater} from "./updater.mjs"; import {instanceSymbol} from '../constants.mjs'; + export {CustomElement, initMethodSymbol, assembleMethodSymbol, attributeObserverSymbol, registerCustomElement, assignUpdaterToElement, getSlottedElements} /** * @memberOf Monster.DOM * @type {symbol} */ -const initMethodSymbol = Symbol('initMethodSymbol'); +const initMethodSymbol = Symbol.for('@schukai/monster/dom/@@initMethodSymbol'); /** * @memberOf Monster.DOM * @type {symbol} */ -const assembleMethodSymbol = Symbol('assembleMethodSymbol'); +const assembleMethodSymbol = Symbol.for('@schukai/monster/dom/@@assembleMethodSymbol'); /** * this symbol holds the attribute observer callbacks. The key is the attribute name. * @memberOf Monster.DOM * @type {symbol} */ -const attributeObserverSymbol = Symbol('attributeObserver'); +const attributeObserverSymbol = Symbol.for('@schukai/monster/dom/@@attributeObserver'); /** diff --git a/application/source/text/formatter.mjs b/application/source/text/formatter.mjs index 7757ffd67..119987d40 100644 --- a/application/source/text/formatter.mjs +++ b/application/source/text/formatter.mjs @@ -12,7 +12,6 @@ import {Pipe} from "../data/pipe.mjs"; import {BaseWithOptions} from "../types/basewithoptions.mjs"; import {isObject, isString} from "../types/is.mjs"; import {validateArray, validateString} from "../types/validate.mjs"; -import {getMonsterVersion} from "../types/version.mjs"; export {Formatter} diff --git a/application/source/types/node.mjs b/application/source/types/node.mjs index 535b942a3..52a3c75d9 100644 --- a/application/source/types/node.mjs +++ b/application/source/types/node.mjs @@ -10,6 +10,7 @@ import {isPrimitive} from "./is.mjs"; import {NodeList} from './nodelist.mjs'; import {validateInstance} from './validate.mjs'; import {instanceSymbol} from '../constants.mjs'; + export {Node} /** @@ -60,7 +61,7 @@ class Node extends Base { static get [instanceSymbol]() { return Symbol.for("@schukai/monster/types/node"); } - + /** * @property {*} diff --git a/development/test/cases/dom/customelement.mjs b/development/test/cases/dom/customelement.mjs index 23bdf0fc4..ba5fb4829 100644 --- a/development/test/cases/dom/customelement.mjs +++ b/development/test/cases/dom/customelement.mjs @@ -133,7 +133,7 @@ describe('DOM', function () { try { expect(document.getElementsByTagName('monster-testclass2').length).is.equal(1); expect(document.getElementsByTagName('monster-testclass2').item(0).shadowRoot.innerHTML).is.equal('<h1></h1><article><p>test</p><div id="container"></div></article>'); - expect(document.getElementById('test1')).contain.html('<monster-testclass2 data-monster-objectlink="Symbol(monsterUpdater)"></monster-testclass2>'); + expect(document.getElementById('test1')).contain.html('<monster-testclass2 data-monster-objectlink="Symbol(@schukai/monster/dom/@@object-updater-link)"></monster-testclass2>'); return done(); } catch (e) { done(e); -- GitLab