UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 1.01 kB
import{NativeFunctions}from"./NativeFunctions.js";import*as DOMPinnedProperties from"./DOMPinnedProperties.js";let javaScriptMetadataInstance;export class JavaScriptMetadataImpl{static domPinnedProperties=DOMPinnedProperties;uniqueFunctions;receiverMethods;static instance(e={forceNew:null}){const{forceNew:t}=e;return javaScriptMetadataInstance&&!t||(javaScriptMetadataInstance=new JavaScriptMetadataImpl),javaScriptMetadataInstance}constructor(){this.uniqueFunctions=new Map,this.receiverMethods=new Map;for(const e of NativeFunctions)if(e.receivers)for(const t of e.receivers){let n=this.receiverMethods.get(t);n||(n=new Map,this.receiverMethods.set(t,n)),n.set(e.name,e.signatures)}else this.uniqueFunctions.set(e.name,e.signatures)}signaturesForNativeFunction(e){return this.uniqueFunctions.get(e)||null}signaturesForInstanceMethod(e,t){const n=this.receiverMethods.get(t);return n&&n.get(e)||null}signaturesForStaticMethod(e,t){const n=this.receiverMethods.get(t+"Constructor");return n&&n.get(e)||null}}