[Here is a minimal example](https://www.assemblyscript.org/editor.html#IyFvcHRpbWl6ZT1zcGVlZCZydW50aW1lPXN0dWIKY2xhc3MgT2JqICB7CiAgICBfb2JqOiBNYXA8c3RyaW5nLCBPYmo+OwoKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICB0aGlzLl9vYmogPSBuZXcgTWFwKCk7CiAgICB9CgogICAgdG9TdHJpbmcoKTogc3RyaW5nIHsKICAgICAgY29uc3Qga2V5cyA9IHRoaXMuX29iai5rZXlzKCk7CiAgICAgIGNvbnN0IG9ianM6IHN0cmluZ1tdID0gbmV3IEFycmF5PHN0cmluZz4oa2V5cy5sZW5ndGgpOwogICAgICAvLyBsb2codGhpcy5rZXlzKQogICAgICBmb3IgKGxldCBpOiBpMzIgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGNvbnN0IGtleSA9IGtleXNbaV07CiAgICAgICAgY29uc3Qga2V5U3RyID0gYCIke2tleX0iYDsKICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX29iai5nZXQoa2V5KTsKICAgICAgICBjb25zdCB2YWxTdHIgPSB2YWx1ZS50b1N0cmluZygpOwogICAgICAgIGNvbnN0IHN0ciA9IGAiJHtrZXl9Ijoke3ZhbHVlLnRvU3RyaW5nKCl9YDsKICAgICAgICBvYmpzW2ldID0gc3RyOwogICAgICB9CgogICAgICByZXR1cm4gYHske29ianMuam9pbigiLCIpfX1gOwogICAgfQp9Cgpjb25zdCBvYmogPSBuZXcgT2JqKCk7CmNvbnN0IGNoaWxkID0gbmV3IE9iaigpOwpjaGlsZC5fb2JqLnNldCgiaXNDaGlsZCIsIG5ldyBPYmooKSkKb2JqLl9vYmouc2V0KCJjaGlsZCIsIGNoaWxkKQoKCmV4cG9ydCBmdW5jdGlvbiBpbnRlcnBvbGF0ZSgpOiBzdHJpbmcgewogIHJldHVybiBvYmoudG9TdHJpbmcoKQp9CiMhaHRtbAo8dGV4dGFyZWEgaWQ9Im91dHB1dCIgc3R5bGU9ImhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+CjxzY3JpcHQ+CmxvYWRlci5pbnN0YW50aWF0ZShtb2R1bGVfd2FzbSwgeyAvKiBpbXBvcnRzICovIH0pCiAgLnRoZW4oKHsgZXhwb3J0cyB9KSA9PiB7CiAgICBjb25zdCBvdXRwdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykKICAgIG91dHB1dC52YWx1ZSA9IGV4cG9ydHMuX19nZXRTdHJpbmcoZXhwb3J0cy5pbnRlcnBvbGF0ZSgpKQogICAgCiAgfSkKPC9zY3JpcHQ+). And code copied: ```ts class Obj { _obj: Map<string, Obj>; constructor() { this._obj = new Map(); } toString(): string { const keys = this._obj.keys(); const objs: string[] = new Array<string>(keys.length); // log(this.keys) for (let i: i32 = 0; i < keys.length; i++) { const key = keys[i]; const keyStr = `"${key}"`; const value = this._obj.get(key); const valStr = value.toString(); const str = `"${key}":${value.toString()}`; objs[i] = str; } return `{${objs.join(",")}}`; } } const obj = new Obj(); const child = new Obj(); child._obj.set("isChild", new Obj()) obj._obj.set("child", child) export function interpolate(): string { return obj.toString() } ``` Running the example returns: ``` {"isChild":{"isChild":{}}} ``` But should be ``` {"child":{"isChild":{}}} ``` Changing `value.toString()` to `valStr` fixes the issue.