{"action":"created","issue":{"url":"https://api.github.com/repos/svaarala/duktape/issues/331","labels_url":"https://api.github.com/repos/svaarala/duktape/issues/331/labels{/name}","comments_url":"https://api.github.com/repos/svaarala/duktape/issues/331/comments","events_url":"https://api.github.com/repos/svaarala/duktape/issues/331/events","html_url":"https://github.com/svaarala/duktape/issues/331","id":105455498,"number":331,"title":"Allow JX-serialization of cyclic objects","user":{"login":"fatcerberus","id":4097841,"avatar_url":"https://avatars.githubusercontent.com/u/4097841?v=3","gravatar_id":"","url":"https://api.github.com/users/fatcerberus","html_url":"https://github.com/fatcerberus","followers_url":"https://api.github.com/users/fatcerberus/followers","following_url":"https://api.github.com/users/fatcerberus/following{/other_user}","gists_url":"https://api.github.com/users/fatcerberus/gists{/gist_id}","starred_url":"https://api.github.com/users/fatcerberus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fatcerberus/subscriptions","organizations_url":"https://api.github.com/users/fatcerberus/orgs","repos_url":"https://api.github.com/users/fatcerberus/repos","events_url":"https://api.github.com/users/fatcerberus/events{/privacy}","received_events_url":"https://api.github.com/users/fatcerberus/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/svaarala/duktape/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/svaarala/duktape/milestones/13","html_url":"https://github.com/svaarala/duktape/milestones/v1.4.0","labels_url":"https://api.github.com/repos/svaarala/duktape/milestones/13/labels","id":1225990,"number":13,"title":"v1.4.0","description":"TBD, parallel release to v2.0.0?","creator":{"login":"svaarala","id":6377415,"avatar_url":"https://avatars.githubusercontent.com/u/6377415?v=3","gravatar_id":"","url":"https://api.github.com/users/svaarala","html_url":"https://github.com/svaarala","followers_url":"https://api.github.com/users/svaarala/followers","following_url":"https://api.github.com/users/svaarala/following{/other_user}","gists_url":"https://api.github.com/users/svaarala/gists{/gist_id}","starred_url":"https://api.github.com/users/svaarala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/svaarala/subscriptions","organizations_url":"https://api.github.com/users/svaarala/orgs","repos_url":"https://api.github.com/users/svaarala/repos","events_url":"https://api.github.com/users/svaarala/events{/privacy}","received_events_url":"https://api.github.com/users/svaarala/received_events","type":"User","site_admin":false},"open_issues":49,"closed_issues":0,"state":"open","created_at":"2015-07-26T04:06:08Z","updated_at":"2015-09-11T15:22:33Z","due_on":null,"closed_at":null},"comments":31,"created_at":"2015-09-08T19:44:04Z","updated_at":"2015-09-12T03:07:39Z","closed_at":null,"body":"I know JSON specifically doesn't allow cyclic objects to be serialized, but it would be useful if JX could do so.  Obviously round-trip serialization would be impossible, but maybe Duktape could put some sort of backreference in the output when it encountered a cycle, similiar to how it adds `{ _func:true }` tags for otherwise unserializable functions.\r\n\r\nCurrently variable viewing in the minisphere debugger is limited because there are no commands to walk objects, so I have to rely on `Duktape.enc` and an Eval command to display the full object.  This fails, however, in the case of a cyclic object (which it turns out happens _a lot_ in the game I'm making)."},"comment":{"url":"https://api.github.com/repos/svaarala/duktape/issues/comments/139705408","html_url":"https://github.com/svaarala/duktape/issues/331#issuecomment-139705408","issue_url":"https://api.github.com/repos/svaarala/duktape/issues/331","id":139705408,"user":{"login":"svaarala","id":6377415,"avatar_url":"https://avatars.githubusercontent.com/u/6377415?v=3","gravatar_id":"","url":"https://api.github.com/users/svaarala","html_url":"https://github.com/svaarala","followers_url":"https://api.github.com/users/svaarala/followers","following_url":"https://api.github.com/users/svaarala/following{/other_user}","gists_url":"https://api.github.com/users/svaarala/gists{/gist_id}","starred_url":"https://api.github.com/users/svaarala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/svaarala/subscriptions","organizations_url":"https://api.github.com/users/svaarala/orgs","repos_url":"https://api.github.com/users/svaarala/repos","events_url":"https://api.github.com/users/svaarala/events{/privacy}","received_events_url":"https://api.github.com/users/svaarala/received_events","type":"User","site_admin":false},"created_at":"2015-09-12T03:07:39Z","updated_at":"2015-09-12T03:07:39Z","body":"But then, maybe that JSON guarantee is simply there to say \"don't get stuck in cycles\" which would be the other, ahem, implementation option."}}