{"ScriptPreparationCode":"class CustomWeakMap {\r\n constructor(relationKey = \u0027__relation\u0027) {\r\n this.relationKey = relationKey;\r\n }\r\n\r\n // \u8BBE\u7F6E\u952E\u503C\u5BF9 - \u4F7F\u7528\u76F4\u63A5\u5C5E\u6027\u8D4B\u503C\u4EE5\u63D0\u9AD8\u6027\u80FD\r\n set(key, value) {\r\n key[this.relationKey] = value;\r\n return this;\r\n }\r\n\r\n // \u83B7\u53D6\u952E\u5BF9\u5E94\u7684\u503C\r\n get(key) {\r\n return key[this.relationKey];\r\n }\r\n\r\n // \u68C0\u67E5\u952E\u662F\u5426\u5B58\u5728\r\n has(key) {\r\n return this.relationKey in key;\r\n }\r\n\r\n // \u5220\u9664\u952E\u503C\u5BF9\r\n delete(key) {\r\n return delete key[this.relationKey];\r\n }\r\n}\r\nvar to0 = {};\r\nvar to1 = {};\r\nvar to2 = {}\r\nvar wm = new WeakMap();\r\nvar sy = Symbol();\r\nvar cy = new CustomWeakMap();\r\nwm.set(to1, 1);\r\nto1[sy] = 1;\r\ncy.set(to2,1)","TestCases":[{"Name":"WeakMap set","Code":"wm.set(to0, 1);","IsDeferred":false},{"Name":"Symbol Property set","Code":"to0[sy] = 1;","IsDeferred":false},{"Name":"WeakMap get","Code":"let r = wm.get(to1);","IsDeferred":false},{"Name":"Symbol Property get","Code":"let r = to1[sy];","IsDeferred":false},{"Name":"CustomWeakMap set","Code":"cy.set(to2, 1);","IsDeferred":false},{"Name":"CustomWeakMap get","Code":"let r = cy.get(to2);","IsDeferred":false}]}