{"action":"created","comment":{"url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/comments/64980395","id":64980395,"diff_hunk":"@@ -13,155 +13,219 @@ namespace PlatformAgnostic\n namespace DateTime\n {\n \n-    #define updatePeriod 1000\n-\n-    const WCHAR *Utility::GetStandardName(size_t *nameLength) {\n-        data.UpdateTimeZoneInfo();\n-        *nameLength = data.standardZoneNameLength;\n-        return data.standardZoneName;\n+    static inline bool IsLeap(const int year)\n+    {\n+        return (0 == (year & 3)) && (0 != (year % 100) || 0 == (year % 400));\n     }\n \n-    const WCHAR *Utility::GetDaylightName(size_t *nameLength) {\n-        // We have an abbreviated standard or daylight name\n-        // based on the date and time zone we are in.\n-        return GetStandardName(nameLength);\n+    static inline int NormalizeYMDYear(const int base_year)\n+    {\n+        if (base_year < -2100)\n+        {\n+            return 2100;\n+        }\n+        else if (base_year < -1900)\n+        {\n+            return base_year * -1;\n+        }\n+\n+        return base_year;\n     }\n \n-    void UtilityPlatformData::UpdateTimeZoneInfo()\n+    static inline int UpdateToYMDYear(const int base_year, const struct tm *time)\n     {\n-        uint32 tickCount = GetTickCount();\n-        if (tickCount - lastTimeZoneUpdateTickCount > updatePeriod)\n+        int year = time->tm_year;\n+\n+        if (base_year < -2100)\n+        {\n+            const int diff = year - 2100;\n+            year = abs(base_year) - diff;\n+        }\n+\n+        if (base_year < -1900)\n         {\n-            time_t gtime = time(NULL);\n-            struct tm ltime;\n+            year *= -1;\n+        }\n \n-            tzset();\n-            localtime_r(&gtime, &ltime);\n+        return year;\n+    }\n \n-            standardZoneNameLength = strlen(ltime.tm_zone);\n+    static void YMD_TO_TM(const YMD *ymd, struct tm *time, bool *leap_added)\n+    {\n+        time->tm_year = NormalizeYMDYear(ymd->year);\n+        time->tm_mon = ymd->mon;\n+        time->tm_wday = ymd->wday;\n+        time->tm_mday = ymd->mday;\n+        int t = ymd->time;\n+        t /= DateTimeTicks_PerSecond; // discard ms\n+        time->tm_sec = t % 60;\n+        t /= 60;\n+        time->tm_min = t % 60;\n+        t /= 60;\n+        time->tm_hour = t;\n+\n+        // mktime etc. broken-out time accepts 1900 as a start year while epoch is 1970\n+        // temporarily add a calendar day for leap pass\n+        bool leap_year = IsLeap(time->tm_year);\n+        *leap_added = false;\n+        if (ymd->yday == 60 && leap_year) {\n+            time->tm_mday++;\n+            *leap_added = true;\n+        }\n+    }\n \n-        #if defined(WCHAR_IS_CHAR16_T)\n-            for(int i = 0; i < standardZoneNameLength; i++) {\n-                standardZoneName[i] = (char16_t)ltime.tm_zone[i];\n-            }\n-        #elif defined(WCHAR_IS_WCHAR_T)\n-            mbstowcs( (wchar_t*) standardZoneName, ltime.tm_zone,\n-                      sizeof(standardZoneName) / sizeof(WCHAR));\n-        #else\n-        #error \"WCHAR should be either wchar_t or char16_t\"\n-        #endif\n+    static void TM_TO_YMD(const struct tm *time, YMD *ymd, const bool leap_added, const int base_year)\n+    {\n+        ymd->year = UpdateToYMDYear(base_year, time);\n+        ymd->mon = time->tm_mon;\n+        ymd->mday = time->tm_mday;\n \n-            standardZoneName[standardZoneNameLength] = (WCHAR)0;\n-            lastTimeZoneUpdateTickCount = tickCount;\n+        ymd->time = (time->tm_hour * DateTimeTicks_PerHour)\n+                  + (time->tm_min * DateTimeTicks_PerMinute)\n+                  + (time->tm_sec * DateTimeTicks_PerSecond);\n+\n+        // mktime etc. broken-out time accepts 1900 as a start year while epoch is 1970\n+        // minus the previously added calendar day (see YMD_TO_TM)\n+        if (leap_added)\n+        {\n+            AssertMsg(ymd->mday >= 0, \"Day of month can't be a negative number\");\n+            if (ymd->mday == 0)\n+            {\n+                ymd->mday = 29;\n+                ymd->mon = 1;\n+            }\n+            else\n+            {\n+                ymd->mday--;\n+            }\n         }\n     }\n \n-    // DateTimeHelper ******\n-    static inline void TM_TO_SYSTIME(struct tm *time, SYSTEMTIME *sysTime)\n+    static void CopyTimeZoneName(WCHAR *wstr, size_t *length, const char *tm_zone)\n     {\n-        sysTime->wYear = time->tm_year + 1900;\n-        sysTime->wMonth = time->tm_mon + 1;\n-        sysTime->wDayOfWeek = time->tm_wday;\n-        sysTime->wDay = time->tm_mday;\n-        sysTime->wHour = time->tm_hour;\n-        sysTime->wMinute = time->tm_min;\n-\n-        // C99 tm_sec value is between 0 and 60. (1 leap second.)\n-        // Discard leap second.\n-        // In any case, this is a representation of a wallclock time.\n-        // It can jump forwards and backwards.\n-\n-        sysTime->wSecond = time->tm_sec % 60;\n+        *length = strlen(tm_zone);\n+\n+#if defined(WCHAR_IS_CHAR16_T)\n+        for(int i = 0; i < *length; i++) {\n+            wstr[i] = (char16_t)tm_zone[i];\n+        }\n+#elif defined(WCHAR_IS_WCHAR_T)\n+        mbstowcs( (wchar_t*) wstr, tm_zone, __CC_PA_TIMEZONE_ABVR_NAME_LENGTH);\n+#else\n+        #error \"WCHAR should be either wchar_t or char16_t\"\n+#endif\n+\n+        wstr[*length] = (WCHAR)0;\n     }\n \n-    #define MIN_ZERO(value) value < 0 ? 0 : value\n+    const WCHAR *Utility::GetStandardName(size_t *nameLength, const DateTime::YMD *ymd) {\n+        AssertMsg(ymd != NULL, \"xplat needs DateTime::YMD is defined for this call\");\n+        struct tm time_tm;\n+        bool leap_added;\n+        YMD_TO_TM(ymd, &time_tm, &leap_added);\n+        mktime(&time_tm); // get zone name for the given date","path":"lib/Runtime/PlatformAgnostic/Platform/Linux/DateTime.cpp","position":160,"original_position":160,"commit_id":"5625aae392c3f4a6056597cba80256e9909435f3","original_commit_id":"5625aae392c3f4a6056597cba80256e9909435f3","user":{"login":"digitalinfinity","id":158390,"avatar_url":"https://avatars.githubusercontent.com/u/158390?v=3","gravatar_id":"","url":"https://api.github.com/users/digitalinfinity","html_url":"https://github.com/digitalinfinity","followers_url":"https://api.github.com/users/digitalinfinity/followers","following_url":"https://api.github.com/users/digitalinfinity/following{/other_user}","gists_url":"https://api.github.com/users/digitalinfinity/gists{/gist_id}","starred_url":"https://api.github.com/users/digitalinfinity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/digitalinfinity/subscriptions","organizations_url":"https://api.github.com/users/digitalinfinity/orgs","repos_url":"https://api.github.com/users/digitalinfinity/repos","events_url":"https://api.github.com/users/digitalinfinity/events{/privacy}","received_events_url":"https://api.github.com/users/digitalinfinity/received_events","type":"User","site_admin":false},"body":"Curious- does this use historic timezone information to get the timezone name? If you didn't pass in ymd, and instead called mktime with time_tm set to now, would you get the same answer as what the Windows version returns? Because it looks like the Windows version will return the timezone name based on the rules for the current time, whereas this might return it based on historic information for the passed in date? ","created_at":"2016-05-28T00:30:27Z","updated_at":"2016-05-28T00:30:27Z","html_url":"https://github.com/Microsoft/ChakraCore/pull/1056#discussion_r64980395","pull_request_url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1056","_links":{"self":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/comments/64980395"},"html":{"href":"https://github.com/Microsoft/ChakraCore/pull/1056#discussion_r64980395"},"pull_request":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1056"}}},"pull_request":{"url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1056","id":71754626,"html_url":"https://github.com/Microsoft/ChakraCore/pull/1056","diff_url":"https://github.com/Microsoft/ChakraCore/pull/1056.diff","patch_url":"https://github.com/Microsoft/ChakraCore/pull/1056.patch","issue_url":"https://api.github.com/repos/Microsoft/ChakraCore/issues/1056","number":1056,"state":"open","locked":false,"title":"cross platform: add edge date cases support","user":{"login":"obastemur","id":4390745,"avatar_url":"https://avatars.githubusercontent.com/u/4390745?v=3","gravatar_id":"","url":"https://api.github.com/users/obastemur","html_url":"https://github.com/obastemur","followers_url":"https://api.github.com/users/obastemur/followers","following_url":"https://api.github.com/users/obastemur/following{/other_user}","gists_url":"https://api.github.com/users/obastemur/gists{/gist_id}","starred_url":"https://api.github.com/users/obastemur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/obastemur/subscriptions","organizations_url":"https://api.github.com/users/obastemur/orgs","repos_url":"https://api.github.com/users/obastemur/repos","events_url":"https://api.github.com/users/obastemur/events{/privacy}","received_events_url":"https://api.github.com/users/obastemur/received_events","type":"User","site_admin":false},"body":"This PR improves xplat date implementation with edge cases support.\r\nNow test cases for Date passes on Ubuntu / Debian\r\n\r\n - tested against VSOFull and its test cases\r\n - no perf difference on Windows measured\r\n\r\nUpdate:\r\n\r\nSome details on what's been done with this update.\r\n\r\n - Linux implementation no longer converts from Windows SYSTEMTIME. ChakraCore's internal YMD structure was a good fit between `tm` and ` SYSTEMTIME` and we do spend less time there.\r\n - Now xplat handles out of range year cases ( <1900 or > 2100) and Feb28/29 + 1 (see test file under Date)\r\n - ChakraCore's common date utilities consider the start year is epoch.  Besides, system time and clock is based on epoch too. However, the C api that calculates the time zone offset, and DST in case of leap year depends on broken-out time starting from 1900. We handle the leap year differences.\r\n - On xplat we need exact date to grab right tm_zone information instead of cached approach on Windows. Windows API can bring back both DTS and STD abbrv with a single call.","created_at":"2016-05-27T18:31:14Z","updated_at":"2016-05-28T00:30:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"80cd24d8976dd6d8e32237c4d4821e45d560ff12","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1056/commits","review_comments_url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1056/comments","review_comment_url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Microsoft/ChakraCore/issues/1056/comments","statuses_url":"https://api.github.com/repos/Microsoft/ChakraCore/statuses/5625aae392c3f4a6056597cba80256e9909435f3","head":{"label":"obastemur:obastemur_xplat_date_tests_","ref":"obastemur_xplat_date_tests_","sha":"5625aae392c3f4a6056597cba80256e9909435f3","user":{"login":"obastemur","id":4390745,"avatar_url":"https://avatars.githubusercontent.com/u/4390745?v=3","gravatar_id":"","url":"https://api.github.com/users/obastemur","html_url":"https://github.com/obastemur","followers_url":"https://api.github.com/users/obastemur/followers","following_url":"https://api.github.com/users/obastemur/following{/other_user}","gists_url":"https://api.github.com/users/obastemur/gists{/gist_id}","starred_url":"https://api.github.com/users/obastemur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/obastemur/subscriptions","organizations_url":"https://api.github.com/users/obastemur/orgs","repos_url":"https://api.github.com/users/obastemur/repos","events_url":"https://api.github.com/users/obastemur/events{/privacy}","received_events_url":"https://api.github.com/users/obastemur/received_events","type":"User","site_admin":false},"repo":{"id":53002057,"name":"ChakraCore","full_name":"obastemur/ChakraCore","owner":{"login":"obastemur","id":4390745,"avatar_url":"https://avatars.githubusercontent.com/u/4390745?v=3","gravatar_id":"","url":"https://api.github.com/users/obastemur","html_url":"https://github.com/obastemur","followers_url":"https://api.github.com/users/obastemur/followers","following_url":"https://api.github.com/users/obastemur/following{/other_user}","gists_url":"https://api.github.com/users/obastemur/gists{/gist_id}","starred_url":"https://api.github.com/users/obastemur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/obastemur/subscriptions","organizations_url":"https://api.github.com/users/obastemur/orgs","repos_url":"https://api.github.com/users/obastemur/repos","events_url":"https://api.github.com/users/obastemur/events{/privacy}","received_events_url":"https://api.github.com/users/obastemur/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/obastemur/ChakraCore","description":"ChakraCore is the core part of the Chakra Javascript engine that powers Microsoft Edge","fork":true,"url":"https://api.github.com/repos/obastemur/ChakraCore","forks_url":"https://api.github.com/repos/obastemur/ChakraCore/forks","keys_url":"https://api.github.com/repos/obastemur/ChakraCore/keys{/key_id}","collaborators_url":"https://api.github.com/repos/obastemur/ChakraCore/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/obastemur/ChakraCore/teams","hooks_url":"https://api.github.com/repos/obastemur/ChakraCore/hooks","issue_events_url":"https://api.github.com/repos/obastemur/ChakraCore/issues/events{/number}","events_url":"https://api.github.com/repos/obastemur/ChakraCore/events","assignees_url":"https://api.github.com/repos/obastemur/ChakraCore/assignees{/user}","branches_url":"https://api.github.com/repos/obastemur/ChakraCore/branches{/branch}","tags_url":"https://api.github.com/repos/obastemur/ChakraCore/tags","blobs_url":"https://api.github.com/repos/obastemur/ChakraCore/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/obastemur/ChakraCore/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/obastemur/ChakraCore/git/refs{/sha}","trees_url":"https://api.github.com/repos/obastemur/ChakraCore/git/trees{/sha}","statuses_url":"https://api.github.com/repos/obastemur/ChakraCore/statuses/{sha}","languages_url":"https://api.github.com/repos/obastemur/ChakraCore/languages","stargazers_url":"https://api.github.com/repos/obastemur/ChakraCore/stargazers","contributors_url":"https://api.github.com/repos/obastemur/ChakraCore/contributors","subscribers_url":"https://api.github.com/repos/obastemur/ChakraCore/subscribers","subscription_url":"https://api.github.com/repos/obastemur/ChakraCore/subscription","commits_url":"https://api.github.com/repos/obastemur/ChakraCore/commits{/sha}","git_commits_url":"https://api.github.com/repos/obastemur/ChakraCore/git/commits{/sha}","comments_url":"https://api.github.com/repos/obastemur/ChakraCore/comments{/number}","issue_comment_url":"https://api.github.com/repos/obastemur/ChakraCore/issues/comments{/number}","contents_url":"https://api.github.com/repos/obastemur/ChakraCore/contents/{+path}","compare_url":"https://api.github.com/repos/obastemur/ChakraCore/compare/{base}...{head}","merges_url":"https://api.github.com/repos/obastemur/ChakraCore/merges","archive_url":"https://api.github.com/repos/obastemur/ChakraCore/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/obastemur/ChakraCore/downloads","issues_url":"https://api.github.com/repos/obastemur/ChakraCore/issues{/number}","pulls_url":"https://api.github.com/repos/obastemur/ChakraCore/pulls{/number}","milestones_url":"https://api.github.com/repos/obastemur/ChakraCore/milestones{/number}","notifications_url":"https://api.github.com/repos/obastemur/ChakraCore/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/obastemur/ChakraCore/labels{/name}","releases_url":"https://api.github.com/repos/obastemur/ChakraCore/releases{/id}","deployments_url":"https://api.github.com/repos/obastemur/ChakraCore/deployments","created_at":"2016-03-02T22:43:37Z","updated_at":"2016-03-02T22:43:53Z","pushed_at":"2016-05-27T18:49:42Z","git_url":"git://github.com/obastemur/ChakraCore.git","ssh_url":"git@github.com:obastemur/ChakraCore.git","clone_url":"https://github.com/obastemur/ChakraCore.git","svn_url":"https://github.com/obastemur/ChakraCore","homepage":null,"size":31620,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Microsoft:linux","ref":"linux","sha":"89ba407e7e184bad2e6ad92c70a3023291372f61","user":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":49086513,"name":"ChakraCore","full_name":"Microsoft/ChakraCore","owner":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Microsoft/ChakraCore","description":"ChakraCore is the core part of the Chakra Javascript engine that powers Microsoft Edge","fork":false,"url":"https://api.github.com/repos/Microsoft/ChakraCore","forks_url":"https://api.github.com/repos/Microsoft/ChakraCore/forks","keys_url":"https://api.github.com/repos/Microsoft/ChakraCore/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/ChakraCore/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/ChakraCore/teams","hooks_url":"https://api.github.com/repos/Microsoft/ChakraCore/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/ChakraCore/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/ChakraCore/events","assignees_url":"https://api.github.com/repos/Microsoft/ChakraCore/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/ChakraCore/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/ChakraCore/tags","blobs_url":"https://api.github.com/repos/Microsoft/ChakraCore/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/ChakraCore/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/ChakraCore/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/ChakraCore/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/ChakraCore/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/ChakraCore/languages","stargazers_url":"https://api.github.com/repos/Microsoft/ChakraCore/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/ChakraCore/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/ChakraCore/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/ChakraCore/subscription","commits_url":"https://api.github.com/repos/Microsoft/ChakraCore/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/ChakraCore/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/ChakraCore/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/ChakraCore/issues/comments{/number}","contents_url":"https://api.github.com/repos/Microsoft/ChakraCore/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/ChakraCore/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/ChakraCore/merges","archive_url":"https://api.github.com/repos/Microsoft/ChakraCore/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/ChakraCore/downloads","issues_url":"https://api.github.com/repos/Microsoft/ChakraCore/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/ChakraCore/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/ChakraCore/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/ChakraCore/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/ChakraCore/releases{/id}","deployments_url":"https://api.github.com/repos/Microsoft/ChakraCore/deployments","created_at":"2016-01-05T19:05:31Z","updated_at":"2016-05-27T21:39:41Z","pushed_at":"2016-05-27T23:55:14Z","git_url":"git://github.com/Microsoft/ChakraCore.git","ssh_url":"git@github.com:Microsoft/ChakraCore.git","clone_url":"https://github.com/Microsoft/ChakraCore.git","svn_url":"https://github.com/Microsoft/ChakraCore","homepage":null,"size":39006,"stargazers_count":5218,"watchers_count":5218,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":579,"mirror_url":null,"open_issues_count":133,"forks":579,"open_issues":133,"watchers":5218,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1056"},"html":{"href":"https://github.com/Microsoft/ChakraCore/pull/1056"},"issue":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/issues/1056"},"comments":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/issues/1056/comments"},"review_comments":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1056/comments"},"review_comment":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1056/commits"},"statuses":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/statuses/5625aae392c3f4a6056597cba80256e9909435f3"}}}}
{"actor":{"display_login":"digitalinfinity"}}