Leave the scope mask off a globe whose container holds no DOM children

This commit is contained in:
German Khokhlov committed 2026-11-03 21:47:13 +04:00
1 parent 5983c663bd
commit 89339cdd96
2 files changed
+10 -1

No files matched your search

+2 -1
View File
@@ -454,7 +454,8 @@ function globeOf(target) {
export function installScopeMask(target) {
if (_canvas) return;
const globe = globeOf(target);
if (!globe.container) return;
// Only a DOM container can hold the mask (an engine double's cannot).
if (typeof globe.container?.appendChild !== 'function') return;
syncScopeMaskAppearance();
_container = globe.container;
_globe = globe;
+8
View File
@@ -801,3 +801,11 @@ test('on a globe engine (Navara) the mask goes into its host container and follo
dom.restore();
}
});
test('an engine without a DOM container gets no mask and no listeners', async () => {
const { createFakeEngine } = await import('./globe/testing/fakeEngine.js');
const engine = createFakeEngine({ kind: 'navara' });
installScopeMask(engine);
assert.equal(engine.frames.preRender.numberOfListeners, 0);
destroyScopeMask();
});