{"action":"created","issue":{"url":"https://api.github.com/repos/w3c/hr-time/issues/36","repository_url":"https://api.github.com/repos/w3c/hr-time","labels_url":"https://api.github.com/repos/w3c/hr-time/issues/36/labels{/name}","comments_url":"https://api.github.com/repos/w3c/hr-time/issues/36/comments","events_url":"https://api.github.com/repos/w3c/hr-time/issues/36/events","html_url":"https://github.com/w3c/hr-time/issues/36","id":185720180,"number":36,"title":"timeOrigin prose doesn't make sense","user":{"login":"bzbarsky","id":1457979,"avatar_url":"https://avatars.githubusercontent.com/u/1457979?v=3","gravatar_id":"","url":"https://api.github.com/users/bzbarsky","html_url":"https://github.com/bzbarsky","followers_url":"https://api.github.com/users/bzbarsky/followers","following_url":"https://api.github.com/users/bzbarsky/following{/other_user}","gists_url":"https://api.github.com/users/bzbarsky/gists{/gist_id}","starred_url":"https://api.github.com/users/bzbarsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bzbarsky/subscriptions","organizations_url":"https://api.github.com/users/bzbarsky/orgs","repos_url":"https://api.github.com/users/bzbarsky/repos","events_url":"https://api.github.com/users/bzbarsky/events{/privacy}","received_events_url":"https://api.github.com/users/bzbarsky/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/w3c/hr-time/milestones/3","html_url":"https://github.com/w3c/hr-time/milestones/Level%203","labels_url":"https://api.github.com/repos/w3c/hr-time/milestones/3/labels","id":2041191,"number":3,"title":"Level 3","description":"","creator":{"login":"igrigorik","id":10652,"avatar_url":"https://avatars.githubusercontent.com/u/10652?v=3","gravatar_id":"","url":"https://api.github.com/users/igrigorik","html_url":"https://github.com/igrigorik","followers_url":"https://api.github.com/users/igrigorik/followers","following_url":"https://api.github.com/users/igrigorik/following{/other_user}","gists_url":"https://api.github.com/users/igrigorik/gists{/gist_id}","starred_url":"https://api.github.com/users/igrigorik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/igrigorik/subscriptions","organizations_url":"https://api.github.com/users/igrigorik/orgs","repos_url":"https://api.github.com/users/igrigorik/repos","events_url":"https://api.github.com/users/igrigorik/events{/privacy}","received_events_url":"https://api.github.com/users/igrigorik/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":3,"state":"open","created_at":"2016-10-01T01:25:30Z","updated_at":"2016-10-27T18:49:36Z","due_on":"2017-06-01T00:00:00Z","closed_at":null},"comments":3,"created_at":"2016-10-27T16:35:05Z","updated_at":"2016-10-28T01:58:50Z","closed_at":null,"body":"The IDL says:\r\n\r\n    readonly attribute DOMHighResTimeStamp timeOrigin;\r\n\r\nand the prose says:\r\n\r\n> The timeOrigin attribute MUST return a DOMHighResTimeStamp representing the high resolution time of the time origin timestamp of the global object.\r\n\r\nwhere \"time origin timestamp\" is defined as:\r\n\r\n> * If time origin is undefined, return undefined. \r\n> * Otherwise, the sum of the high resolution Unix time at which the global monotonic clock is zero and the time value of the global monotonic clock at which the time origin is zero. \r\n\r\nOK, so if time origin is undefined... what does the `.timeOrigin` attribute return?  `undefined` is not a valid `DOMHighResTimeStamp` value."},"comment":{"url":"https://api.github.com/repos/w3c/hr-time/issues/comments/256817882","html_url":"https://github.com/w3c/hr-time/issues/36#issuecomment-256817882","issue_url":"https://api.github.com/repos/w3c/hr-time/issues/36","id":256817882,"user":{"login":"bzbarsky","id":1457979,"avatar_url":"https://avatars.githubusercontent.com/u/1457979?v=3","gravatar_id":"","url":"https://api.github.com/users/bzbarsky","html_url":"https://github.com/bzbarsky","followers_url":"https://api.github.com/users/bzbarsky/followers","following_url":"https://api.github.com/users/bzbarsky/following{/other_user}","gists_url":"https://api.github.com/users/bzbarsky/gists{/gist_id}","starred_url":"https://api.github.com/users/bzbarsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bzbarsky/subscriptions","organizations_url":"https://api.github.com/users/bzbarsky/orgs","repos_url":"https://api.github.com/users/bzbarsky/repos","events_url":"https://api.github.com/users/bzbarsky/events{/privacy}","received_events_url":"https://api.github.com/users/bzbarsky/received_events","type":"User","site_admin":false},"created_at":"2016-10-28T01:58:50Z","updated_at":"2016-10-28T01:58:50Z","body":"Well, one option is to not make it sounds like that case can happen.  Right now there are two bits that both attempt to define what the \"timeOrigin\" attribute should return, in some weird interaction:\r\n\r\n1. The text at https://w3c.github.io/hr-time/#dom-performance-timeorigin\r\n2. The text at https://w3c.github.io/hr-time/#time-origin-timestamp\r\n\r\nOne plausible way to spec this more clearly is as follows:\r\n\r\n> To _get the time origin timestamp_ for a global object _G_, perform the following steps:\r\n> 1. Assert: _G_ has a defined time origin.\r\n> 2. Let _t1_ be the DOMHighResTimeStamp representing the high resolution Unix time at which the global monotonic clock is zero.  Note: _t1_ does not depend on _G_.\r\n> 3. Let _t2_ be the DOMHighResTimeStamp representing the time value of the global monotonic clock at _G_'s time origin.\r\n> 4. Return _t1_ + _t2_\r\n\r\nand then specify that getting `.timeOrigin` gets the time origin timestamp for \"the global object\" (need to actually specify which one, too!).\r\n\r\nThis avoids phrases like \"at which time origin is zero\" which don't make sense, because the time origin is a timestamp, not a number; in general only differences between two timestamps can be expressed as numbers not timestamps themselves.  It's unfortunate that we have a `DOMHighResTimeStamp` type which actually represents a difference of timestamps, not a timestamp..."}}
{"actor":{"display_login":"bzbarsky"}}