1# @ohos.hiviewdfx.jsLeakWatcher (JSLeakWatcher) 2 3This module provides the capability of monitoring whether JS objects are leaked. 4 5> **NOTE** 6> 7> The initial APIs of this module are supported since API version 12. Newly added APIs will be marked with a superscript to indicate their earliest API version. 8 9## Modules to Import 10 11```js 12import { jsLeakWatcher } from '@kit.PerformanceAnalysisKit'; 13``` 14 15 16## jsLeakWatcher.enable 17 18enable(isEnable: boolean): void; 19 20Enables the detection for JS object leak. This function is disabled by default. 21 22**System capability**: SystemCapability.HiviewDFX.HiChecker 23 24**Parameters** 25 26| Name| Type| Mandatory| Description| 27| -------- | -------- | -------- | -------- | 28| isEnable | boolean | Yes| Indicates whether to enable **jsLeakWatcher**.| 29 30**Example** 31 32```js 33jsLeakWatcher.enable(true); 34``` 35 36 37## jsLeakWatcher.watch 38 39watch(obj: object, msg: string): void; 40 41Registers the object to be checked. 42 43**System capability**: SystemCapability.HiviewDFX.HiChecker 44 45**Parameters** 46 47| Name| Type| Mandatory| Description| 48| -------- | -------- | -------- | -------- | 49| obj | object | Yes| Name of the object to be checked.| 50| msg | string | Yes| User-defined object information.| 51 52**Example** 53 54```js 55let obj:Object = new Object(); 56jsLeakWatcher.watch(obj, "Trace Object"); 57``` 58 59 60## jsLeakWatcher.check 61 62check(): string; 63 64Obtains the list of objects that are registered using **jsLeakWatcher.watch()** and may leak. Objects that are not reclaimed after GC is triggered are marked as leaked. 65 66**System capability**: SystemCapability.HiviewDFX.HiChecker 67 68**Return value** 69 70| Type | Description | 71| ------- | ---------------------------------------------------------- | 72| string | List of objects that are suspected to leak, in JSON format.| 73 74**Example** 75```js 76let leakObjlist:string = jsLeakWatcher.check(); 77``` 78 79 80## jsLeakWatcher.dump 81 82dump(filePath: string): Array<\string>; 83 84Exports the list of leaked objects and VM memory snapshot. 85 86**System capability**: SystemCapability.HiviewDFX.HiChecker 87 88**Parameters** 89 90| Name| Type| Mandatory| Description| 91| -------- | -------- | -------- | -------- | 92| filePath | string | Yes| The path for storing exported information files.| 93 94**Return value** 95 96| Type | Description | 97| ------- | ---------------------------------------------------------- | 98| Array<\string> | Array of exported results. Index **0** indicates the name of the leak list file, and the file name extension is **.jsleaklist**. Index **1** indicates the name of the VM memory snapshot file, and the file name extension is **.heapsnapshort**. | 99 100**Error codes** 101 102For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). 103 104| ID| Error Message| 105| ------- | ----------------------------------------------------------------- | 106| 401 | Parameter error. The filepath is invalid. | 107 108**Example** 109 110```js 111let context = getContext(this); 112let files:Array<string> = jsLeakWatcher.dump(context.filesDir); 113``` 114