@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 768 B
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import{TrackingTarget as t}from"./TrackingTarget.js";class s extends t{constructor(t){super(new i(t)),this._observer&&e.register(this,new WeakRef(this._observer),this)}destroy(){this._observer&&e.unregister(this._observer),this.accessed?.clear(),this.clear(),this._observer?.destroy()}}class i{constructor(t){this._notify=t,this._invalidCount=0,this.destroyed=!1}onInvalidated(){this._invalidCount++}onCommitted(){if(this.destroyed)return;const t=this._invalidCount;if(1===t)return this._invalidCount=0,void this._notify();this._invalidCount=t>0?t-1:0}destroy(){this.destroyed=!0,this._notify=r}}const e=new FinalizationRegistry(t=>{t.deref()?.destroy()});function r(){}export{s as SimpleTrackingTarget};