{"action":"created","comment":{"url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/comments/66121988","id":66121988,"diff_hunk":"@@ -2746,3 +3230,504 @@ CHAKRA_API JsRunSerializedScriptWithCallback(_In_ JsSerializedScriptLoadSourceCa\n     return RunSerializedScriptCore<JsSerializedScriptLoadSourceCallback, JsSerializedScriptUnloadCallback>(nullptr, scriptLoadCallback, scriptUnloadCallback, buffer, sourceContext, sourceUrl, false, result);\n }\n #endif // _WIN32\n+\n+/////////////////////\n+\n+CHAKRA_API JsTTDCreateRecordRuntime(_In_ JsRuntimeAttributes attributes, _In_z_ wchar_t* infoUri, _In_ UINT32 snapInterval, _In_ UINT32 snapHistoryLength, _In_opt_ JsThreadServiceCallback threadService, _Out_ JsRuntimeHandle *runtime)\n+{\n+    return CreateRuntimeCore(attributes, infoUri, nullptr, snapInterval, snapHistoryLength, threadService, runtime);\n+}\n+\n+CHAKRA_API JsTTDCreateDebugRuntime(_In_ JsRuntimeAttributes attributes, _In_z_ wchar_t* infoUri, _In_opt_ JsThreadServiceCallback threadService, _Out_ JsRuntimeHandle *runtime)\n+{\n+    return CreateRuntimeCore(attributes, nullptr, infoUri, UINT_MAX, UINT_MAX, threadService, runtime);\n+}\n+\n+CHAKRA_API JsTTDCreateContext(_In_ JsRuntimeHandle runtime, _Out_ JsContextRef *newContext)\n+{\n+    return CreateContextCore(runtime, true, newContext);\n+}\n+\n+CHAKRA_API JsTTDRunScript(_In_ INT64 hostCallbackId, _In_z_ const wchar_t *script, _In_ JsSourceContext sourceContext, _In_z_ const wchar_t *sourceUrl, _Out_ JsValueRef *result)\n+{\n+    return RunScriptCore(hostCallbackId, script, sourceContext, sourceUrl, false, JsParseScriptAttributeNone, false /*isModule*/, result);\n+}\n+\n+CHAKRA_API JsTTDCallFunction(_In_ INT64 hostCallbackId, _In_ JsValueRef function, _In_reads_(argumentCount) JsValueRef *arguments, _In_ unsigned short argumentCount, _Out_opt_ JsValueRef *result)\n+{\n+    return CallFunctionCore(hostCallbackId, function, arguments, argumentCount, result);\n+}\n+\n+CHAKRA_API JsTTDSetDebuggerForReplay()\n+{\n+#if !ENABLE_TTD_DEBUGGING\n+    return JsErrorCategoryUsage;\n+#else\n+    JsrtContext *currentContext = JsrtContext::GetCurrent();\n+    if(currentContext->GetRuntime()->GetThreadContext()->TTDLog == nullptr)\n+    {\n+        AssertMsg(false, \"Need to create in TTD mode.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    //Checks if already in debug mode internally so we don't need to check before calling.\n+    currentContext->GetScriptContext()->GetDebugContext()->SetDebuggerMode(Js::DebuggerMode::Debugging);\n+\n+    return JsNoError;\n+#endif\n+}\n+\n+CHAKRA_API JsTTDSetIOCallbacks(_In_ JsRuntimeHandle runtime, _In_ JsTTDInitializeUriCallback ttdInitializeUriFunction, _In_ JsTTDInitializeForWriteLogStreamCallback writeInitializeFunction, _In_ JsTTDGetLogStreamCallback getLogStreamInfo, _In_ JsTTDGetSnapshotStreamCallback getSnapshotStreamInfo, _In_ JsTTDGetSrcCodeStreamCallback getSrcCodeStreamInfo, _In_ JsTTDReadBytesFromStreamCallback readBytesFromStream, _In_ JsTTDWriteBytesToStreamCallback writeBytesToStream, _In_ JsTTDFlushAndCloseStreamCallback flushAndCloseStream)\n+{\n+#if !ENABLE_TTD\n+    return JsErrorCategoryUsage;\n+#else\n+    ThreadContext* threadContext = JsrtRuntime::FromHandle(runtime)->GetThreadContext();\n+\n+    if(ttdInitializeUriFunction == nullptr || writeInitializeFunction == nullptr \n+        || getLogStreamInfo == nullptr || getSnapshotStreamInfo == nullptr || getSrcCodeStreamInfo == nullptr \n+        || readBytesFromStream == nullptr || writeBytesToStream == nullptr || flushAndCloseStream == nullptr)\n+    {\n+        return JsErrorNullArgument;\n+    }\n+\n+    threadContext->TTDInitializeTTDUriFunction = ttdInitializeUriFunction;\n+    threadContext->TTDWriteInitializeFunction = writeInitializeFunction;\n+    threadContext->TTDStreamFunctions.pfGetLogStream = getLogStreamInfo;\n+    threadContext->TTDStreamFunctions.pfGetSnapshotStream = getSnapshotStreamInfo;\n+    threadContext->TTDStreamFunctions.pfGetSrcCodeStream = getSrcCodeStreamInfo;\n+    threadContext->TTDStreamFunctions.pfReadBytesFromStream = readBytesFromStream;\n+    threadContext->TTDStreamFunctions.pfWriteBytesToStream = writeBytesToStream;\n+    threadContext->TTDStreamFunctions.pfFlushAndCloseStream = flushAndCloseStream;\n+\n+    return JsNoError;\n+#endif\n+}\n+\n+CHAKRA_API JsTTDStartTimeTravelRecording()\n+{\n+#if !ENABLE_TTD\n+    return JsErrorCategoryUsage;\n+#else\n+    JsrtContext *currentContext = JsrtContext::GetCurrent();\n+    Js::ScriptContext* scriptContext = currentContext->GetScriptContext();\n+    ThreadContext* threadContext = scriptContext->GetThreadContext();\n+    if(threadContext->TTDLog == nullptr)\n+    {\n+        AssertMsg(false, \"Need to create in TTD mode.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    if(scriptContext->IsTTDDetached())\n+    {\n+        AssertMsg(false, \"Cannot re-start TTD after detach.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    if(scriptContext->IsTTDActive())\n+    {\n+        AssertMsg(false, \"Already started TTD.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    threadContext->TTDLog->SetGlobalMode(TTD::TTDMode::RecordEnabled);\n+\n+    threadContext->TTDLog->PushMode(TTD::TTDMode::ExcludedExecution);\n+    BEGIN_JS_RUNTIME_CALLROOT_EX(scriptContext, false)\n+    {\n+        threadContext->TTDLog->DoSnapshotExtract();\n+    }\n+    END_JS_RUNTIME_CALL(scriptContext);\n+    threadContext->TTDLog->PopMode(TTD::TTDMode::ExcludedExecution);\n+\n+    return JsNoError;\n+#endif\n+}\n+\n+CHAKRA_API JsTTDStopTimeTravelRecording()\n+{\n+#if !ENABLE_TTD\n+    return JsErrorCategoryUsage;\n+#else\n+    JsrtContext *currentContext = JsrtContext::GetCurrent();\n+    Js::ScriptContext* scriptContext = currentContext->GetScriptContext();\n+    ThreadContext* threadContext = scriptContext->GetThreadContext();\n+    if(threadContext->TTDLog == nullptr)\n+    {\n+        AssertMsg(false, \"Need to create in TTD mode.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    if(scriptContext->IsTTDDetached())\n+    {\n+        AssertMsg(false, \"Already stopped TTD.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    if(!scriptContext->IsTTDActive())\n+    {\n+        AssertMsg(false, \"TTD was never started.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    threadContext->TTDLog->PushMode(TTD::TTDMode::ExcludedExecution);\n+    BEGIN_JS_RUNTIME_CALLROOT_EX(scriptContext, false)\n+    {\n+        threadContext->EmitTTDLogIfNeeded();\n+        threadContext->EndCtxTimeTravel(scriptContext);\n+    }\n+    END_JS_RUNTIME_CALL(scriptContext);\n+    threadContext->TTDLog->PopMode(TTD::TTDMode::ExcludedExecution);\n+\n+    return JsNoError;\n+#endif\n+}\n+\n+CHAKRA_API JsTTDEmitTimeTravelRecording()\n+{\n+#if !ENABLE_TTD\n+    return JsErrorCategoryUsage;\n+#else\n+    JsrtContext *currentContext = JsrtContext::GetCurrent();\n+    Js::ScriptContext* scriptContext = currentContext->GetScriptContext();\n+    ThreadContext* threadContext = scriptContext->GetThreadContext();\n+    if(threadContext->TTDLog == nullptr)\n+    {\n+        AssertMsg(false, \"Need to create in TTD mode.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    if(scriptContext->IsTTDDetached())\n+    {\n+        AssertMsg(false, \"Already stopped TTD.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    if(!scriptContext->IsTTDActive())\n+    {\n+        AssertMsg(false, \"TTD was never started.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    threadContext->TTDLog->PushMode(TTD::TTDMode::ExcludedExecution);\n+    BEGIN_JS_RUNTIME_CALLROOT_EX(scriptContext, false)\n+    {\n+        threadContext->EmitTTDLogIfNeeded();\n+    }\n+    END_JS_RUNTIME_CALL(scriptContext);\n+    threadContext->TTDLog->PopMode(TTD::TTDMode::ExcludedExecution);\n+\n+    return JsNoError;\n+#endif\n+}\n+\n+CHAKRA_API JsTTDStartTimeTravelDebugging()\n+{\n+#if !ENABLE_TTD\n+    return JsErrorCategoryUsage;\n+#else\n+    JsrtContext *currentContext = JsrtContext::GetCurrent();\n+    Js::ScriptContext* scriptContext = currentContext->GetScriptContext();\n+    ThreadContext* threadContext = scriptContext->GetThreadContext();\n+    if(threadContext->TTDLog == nullptr)\n+    {\n+        AssertMsg(false, \"Need to create in TTD mode.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    if(scriptContext->IsTTDDetached())\n+    {\n+        AssertMsg(false, \"Cannot re-start TTD after detach.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    if(scriptContext->IsTTDActive())\n+    {\n+        AssertMsg(false, \"Already started TTD.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    scriptContext->GetThreadContext()->TTDLog->SetIntoDebuggingMode();\n+\n+    return JsNoError;\n+#endif\n+}\n+\n+CHAKRA_API JsTTDPauseTimeTravelBeforeRuntimeOperation()\n+{\n+#if !ENABLE_TTD\n+    return JsErrorCategoryUsage;\n+#else\n+    JsrtContext *currentContext = JsrtContext::GetCurrent();\n+\n+    if(currentContext->GetRuntime()->GetThreadContext()->TTDLog != nullptr)\n+    {\n+        currentContext->GetRuntime()->GetThreadContext()->TTDLog->PushMode(TTD::TTDMode::ExcludedExecution);\n+    }\n+\n+    return JsNoError;\n+#endif\n+}\n+\n+CHAKRA_API JsTTDReStartTimeTravelAfterRuntimeOperation()\n+{\n+#if !ENABLE_TTD\n+    return JsErrorCategoryUsage;\n+#else\n+    JsrtContext *currentContext = JsrtContext::GetCurrent();\n+    if(currentContext->GetRuntime()->GetThreadContext()->TTDLog != nullptr)\n+    {\n+        currentContext->GetRuntime()->GetThreadContext()->TTDLog->PopMode(TTD::TTDMode::ExcludedExecution);\n+    }\n+\n+    return JsNoError;\n+#endif\n+}\n+\n+CHAKRA_API JsTTDNotifyHostCallbackCreatedOrCanceled(_In_ bool isCreated, _In_ bool isCancel, _In_ bool isRepeating, _In_ JsValueRef function, _In_ INT64 callbackId)\n+{\n+#if !ENABLE_TTD\n+    return JsErrorCategoryUsage;\n+#else\n+    JsrtContext *currentContext = JsrtContext::GetCurrent();\n+    Js::ScriptContext* scriptContext = currentContext->GetScriptContext();\n+\n+    if(PERFORM_JSRT_TTD_RECORD_ACTION_CHECK(scriptContext))\n+    {\n+        Js::JavascriptFunction* jsFunction = (function != nullptr) ? Js::JavascriptFunction::FromVar(function) : nullptr;\n+\n+        scriptContext->GetThreadContext()->TTDLog->RecordJsRTCallbackOperation(scriptContext, isCreated, isCancel, isRepeating, jsFunction, callbackId);\n+    }\n+\n+    return JsNoError;\n+#endif\n+}\n+\n+CHAKRA_API JsTTDNotifyYield()\n+{\n+#if !ENABLE_TTD\n+    return JsErrorCategoryUsage;\n+#else\n+    JsrtContext *currentContext = JsrtContext::GetCurrent();\n+    Js::ScriptContext* scriptContext = currentContext->GetScriptContext();\n+\n+    if(PERFORM_JSRT_TTD_RECORD_ACTION_CHECK(scriptContext))\n+    {\n+        scriptContext->GetThreadContext()->TTDLog->RecordJsRTEventLoopYieldPoint(scriptContext);\n+    }\n+\n+    return JsNoError;\n+#endif\n+}\n+\n+CHAKRA_API JsTTDPrepContextsForTopLevelEventMove(_In_ JsRuntimeHandle runtimeHandle, _In_ INT64 targetEventTime, _Out_ INT64* targetStartSnapTime)\n+{\n+#if !ENABLE_TTD_DEBUGGING\n+    return JsErrorCategoryUsage;\n+#else\n+    JsrtContext *currentContext = JsrtContext::GetCurrent();\n+    Js::ScriptContext* scriptContext = currentContext->GetScriptContext();\n+    if(scriptContext->GetThreadContext()->TTDLog == nullptr)\n+    {\n+        AssertMsg(false, \"Should only happen in TT debugging mode.\");\n+        return JsErrorCategoryUsage;\n+    }\n+\n+    //Make sure we don't have any pending recorded exceptions\n+    if(scriptContext->HasRecordedException())\n+    {\n+        scriptContext->GetAndClearRecordedException(nullptr);\n+    }\n+\n+    //a special indicator to use the time from the argument flag or log diagnostic report\n+    if(targetEventTime == -2)\n+    {\n+        targetEventTime = scriptContext->GetThreadContext()->TTDLog->GetKthEventTime(Js::Configuration::Global.flags.TTDStartEvent);\n+    }\n+\n+    bool createFreshCtxs = false;\n+    *targetStartSnapTime = scriptContext->GetThreadContext()->TTDLog->FindSnapTimeForEventTime(targetEventTime, &createFreshCtxs);\n+\n+    if(createFreshCtxs)\n+    {\n+        try\n+        {\n+            AUTO_NESTED_HANDLED_EXCEPTION_TYPE((ExceptionType)(ExceptionType_OutOfMemory | ExceptionType_StackOverflow));","path":"lib/Jsrt/Jsrt.cpp","position":1602,"original_position":1602,"commit_id":"290dcb0ea6344c0254bb996bc884f01836393f4d","original_commit_id":"290dcb0ea6344c0254bb996bc884f01836393f4d","user":{"login":"agarwal-sandeep","id":12059066,"avatar_url":"https://avatars.githubusercontent.com/u/12059066?v=3","gravatar_id":"","url":"https://api.github.com/users/agarwal-sandeep","html_url":"https://github.com/agarwal-sandeep","followers_url":"https://api.github.com/users/agarwal-sandeep/followers","following_url":"https://api.github.com/users/agarwal-sandeep/following{/other_user}","gists_url":"https://api.github.com/users/agarwal-sandeep/gists{/gist_id}","starred_url":"https://api.github.com/users/agarwal-sandeep/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/agarwal-sandeep/subscriptions","organizations_url":"https://api.github.com/users/agarwal-sandeep/orgs","repos_url":"https://api.github.com/users/agarwal-sandeep/repos","events_url":"https://api.github.com/users/agarwal-sandeep/events{/privacy}","received_events_url":"https://api.github.com/users/agarwal-sandeep/received_events","type":"User","site_admin":false},"body":"Why not use GlobalAPIWrapper?\r\nAre other TTD APIs allowed when heap enum is in progress or we are in collect callback? if not the all TTD APIs should use ContextAPINoScriptWrapper so that CheckContext is executed.","created_at":"2016-06-07T18:03:40Z","updated_at":"2016-06-07T18:03:40Z","html_url":"https://github.com/Microsoft/ChakraCore/pull/1080#discussion_r66121988","pull_request_url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1080","_links":{"self":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/comments/66121988"},"html":{"href":"https://github.com/Microsoft/ChakraCore/pull/1080#discussion_r66121988"},"pull_request":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1080"}}},"pull_request":{"url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1080","id":72424624,"html_url":"https://github.com/Microsoft/ChakraCore/pull/1080","diff_url":"https://github.com/Microsoft/ChakraCore/pull/1080.diff","patch_url":"https://github.com/Microsoft/ChakraCore/pull/1080.patch","issue_url":"https://api.github.com/repos/Microsoft/ChakraCore/issues/1080","number":1080,"state":"open","locked":false,"title":"Merge Time-Travel Debugging into master","user":{"login":"mrkmarron","id":14864042,"avatar_url":"https://avatars.githubusercontent.com/u/14864042?v=3","gravatar_id":"","url":"https://api.github.com/users/mrkmarron","html_url":"https://github.com/mrkmarron","followers_url":"https://api.github.com/users/mrkmarron/followers","following_url":"https://api.github.com/users/mrkmarron/following{/other_user}","gists_url":"https://api.github.com/users/mrkmarron/gists{/gist_id}","starred_url":"https://api.github.com/users/mrkmarron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrkmarron/subscriptions","organizations_url":"https://api.github.com/users/mrkmarron/orgs","repos_url":"https://api.github.com/users/mrkmarron/repos","events_url":"https://api.github.com/users/mrkmarron/events{/privacy}","received_events_url":"https://api.github.com/users/mrkmarron/received_events","type":"User","site_admin":false},"body":"This PR adds the core time-travel debugging support code to ChakraCore and tests to ch.\r\n\r\nTests are under test\\TTBasic which test snapshot/restore behavior and test\\TTExecuteBasic which test record/replay behavior.\r\n\r\nThe majority of the code is in lib\\Runtime\\Debug where 25 new files have been added. There are also a non-trivial of changes to the object/type representations (adding new virtual calls) and to the JsRT interface implementation. Minor other hooks have been added to other files as well (ScriptContext, DynamicObjectSnapshotEnumeratorWPCache, JavascriptExternalFunction, InterpreterStackFrame, etc.).\r\n\r\nAll changes are behind the ENABLE_TTD flag and this flag is only enabled on debug and test builds. When TTD is off the system requires a small number of fast checks on a tag on the ScriptContext so performance/memory impact is minimal when not enabled.\r\n\r\nTo demonstrate the use of this functionality when have a version of Node-ChakraCore and VSCode that provide a reverse-step operation. \r\n","created_at":"2016-06-02T21:59:07Z","updated_at":"2016-06-07T18:03:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"98c11bbc7bb7a1eb8b8b1321d80a4d76109ebfee","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1080/commits","review_comments_url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1080/comments","review_comment_url":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Microsoft/ChakraCore/issues/1080/comments","statuses_url":"https://api.github.com/repos/Microsoft/ChakraCore/statuses/290dcb0ea6344c0254bb996bc884f01836393f4d","head":{"label":"mrkmarron:master","ref":"master","sha":"290dcb0ea6344c0254bb996bc884f01836393f4d","user":{"login":"mrkmarron","id":14864042,"avatar_url":"https://avatars.githubusercontent.com/u/14864042?v=3","gravatar_id":"","url":"https://api.github.com/users/mrkmarron","html_url":"https://github.com/mrkmarron","followers_url":"https://api.github.com/users/mrkmarron/followers","following_url":"https://api.github.com/users/mrkmarron/following{/other_user}","gists_url":"https://api.github.com/users/mrkmarron/gists{/gist_id}","starred_url":"https://api.github.com/users/mrkmarron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrkmarron/subscriptions","organizations_url":"https://api.github.com/users/mrkmarron/orgs","repos_url":"https://api.github.com/users/mrkmarron/repos","events_url":"https://api.github.com/users/mrkmarron/events{/privacy}","received_events_url":"https://api.github.com/users/mrkmarron/received_events","type":"User","site_admin":false},"repo":{"id":60299788,"name":"ChakraCore","full_name":"mrkmarron/ChakraCore","owner":{"login":"mrkmarron","id":14864042,"avatar_url":"https://avatars.githubusercontent.com/u/14864042?v=3","gravatar_id":"","url":"https://api.github.com/users/mrkmarron","html_url":"https://github.com/mrkmarron","followers_url":"https://api.github.com/users/mrkmarron/followers","following_url":"https://api.github.com/users/mrkmarron/following{/other_user}","gists_url":"https://api.github.com/users/mrkmarron/gists{/gist_id}","starred_url":"https://api.github.com/users/mrkmarron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrkmarron/subscriptions","organizations_url":"https://api.github.com/users/mrkmarron/orgs","repos_url":"https://api.github.com/users/mrkmarron/repos","events_url":"https://api.github.com/users/mrkmarron/events{/privacy}","received_events_url":"https://api.github.com/users/mrkmarron/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mrkmarron/ChakraCore","description":"ChakraCore is the core part of the Chakra Javascript engine that powers Microsoft Edge","fork":true,"url":"https://api.github.com/repos/mrkmarron/ChakraCore","forks_url":"https://api.github.com/repos/mrkmarron/ChakraCore/forks","keys_url":"https://api.github.com/repos/mrkmarron/ChakraCore/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mrkmarron/ChakraCore/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mrkmarron/ChakraCore/teams","hooks_url":"https://api.github.com/repos/mrkmarron/ChakraCore/hooks","issue_events_url":"https://api.github.com/repos/mrkmarron/ChakraCore/issues/events{/number}","events_url":"https://api.github.com/repos/mrkmarron/ChakraCore/events","assignees_url":"https://api.github.com/repos/mrkmarron/ChakraCore/assignees{/user}","branches_url":"https://api.github.com/repos/mrkmarron/ChakraCore/branches{/branch}","tags_url":"https://api.github.com/repos/mrkmarron/ChakraCore/tags","blobs_url":"https://api.github.com/repos/mrkmarron/ChakraCore/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mrkmarron/ChakraCore/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mrkmarron/ChakraCore/git/refs{/sha}","trees_url":"https://api.github.com/repos/mrkmarron/ChakraCore/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mrkmarron/ChakraCore/statuses/{sha}","languages_url":"https://api.github.com/repos/mrkmarron/ChakraCore/languages","stargazers_url":"https://api.github.com/repos/mrkmarron/ChakraCore/stargazers","contributors_url":"https://api.github.com/repos/mrkmarron/ChakraCore/contributors","subscribers_url":"https://api.github.com/repos/mrkmarron/ChakraCore/subscribers","subscription_url":"https://api.github.com/repos/mrkmarron/ChakraCore/subscription","commits_url":"https://api.github.com/repos/mrkmarron/ChakraCore/commits{/sha}","git_commits_url":"https://api.github.com/repos/mrkmarron/ChakraCore/git/commits{/sha}","comments_url":"https://api.github.com/repos/mrkmarron/ChakraCore/comments{/number}","issue_comment_url":"https://api.github.com/repos/mrkmarron/ChakraCore/issues/comments{/number}","contents_url":"https://api.github.com/repos/mrkmarron/ChakraCore/contents/{+path}","compare_url":"https://api.github.com/repos/mrkmarron/ChakraCore/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mrkmarron/ChakraCore/merges","archive_url":"https://api.github.com/repos/mrkmarron/ChakraCore/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mrkmarron/ChakraCore/downloads","issues_url":"https://api.github.com/repos/mrkmarron/ChakraCore/issues{/number}","pulls_url":"https://api.github.com/repos/mrkmarron/ChakraCore/pulls{/number}","milestones_url":"https://api.github.com/repos/mrkmarron/ChakraCore/milestones{/number}","notifications_url":"https://api.github.com/repos/mrkmarron/ChakraCore/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mrkmarron/ChakraCore/labels{/name}","releases_url":"https://api.github.com/repos/mrkmarron/ChakraCore/releases{/id}","deployments_url":"https://api.github.com/repos/mrkmarron/ChakraCore/deployments","created_at":"2016-06-02T21:51:54Z","updated_at":"2016-06-02T21:52:15Z","pushed_at":"2016-06-06T22:17:08Z","git_url":"git://github.com/mrkmarron/ChakraCore.git","ssh_url":"git@github.com:mrkmarron/ChakraCore.git","clone_url":"https://github.com/mrkmarron/ChakraCore.git","svn_url":"https://github.com/mrkmarron/ChakraCore","homepage":null,"size":34628,"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:master","ref":"master","sha":"e73c06ee2e415cfd83ef0a4426101da6c01d8ce7","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-06-06T20:54:11Z","pushed_at":"2016-06-07T17:56:13Z","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":40271,"stargazers_count":5243,"watchers_count":5243,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":586,"mirror_url":null,"open_issues_count":139,"forks":586,"open_issues":139,"watchers":5243,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1080"},"html":{"href":"https://github.com/Microsoft/ChakraCore/pull/1080"},"issue":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/issues/1080"},"comments":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/issues/1080/comments"},"review_comments":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1080/comments"},"review_comment":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/pulls/1080/commits"},"statuses":{"href":"https://api.github.com/repos/Microsoft/ChakraCore/statuses/290dcb0ea6344c0254bb996bc884f01836393f4d"}}}}
{"actor":{"display_login":"agarwal-sandeep"}}