{"action":"created","comment":{"url":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls/comments/132509509","pull_request_review_id":55598299,"id":132509509,"diff_hunk":"@@ -6,41 +6,81 @@ title: String.prototype.matchAll\n stage: 1\n contributors: Jordan Harband\n </pre>\n-<emu-clause id=\"String.prototype.matchAll\">\n+\n+<ins class=\"block\">\n+<emu-clause id=\"sec-string-prototype-matchall\">\n \t<h1>String.prototype.matchAll ( _regexp_ )</h1>\n-\t<emu-note>_matchAll_ does not visibly mutate the provided _regexp_ in any way.</emu-note>\n-\t<p>When the _matchAll_ method is called, the following steps are taken:</p>\n+\n+    <p>Performs a regular expression match of the String representing the *this* value against _regexp_ and returns an iterator. Each iteration result’s value is an Array object containing the results of the match, or *null* if the String did not match.</p>\n+\n+\t<p>When the `matchAll` method is called, the following steps are taken:</p>\n \t<emu-alg>\n \t\t1. Let _O_ be ? RequireObjectCoercible(*this* value).\n-\t\t1. Let _isRegExp_ be ? IsRegExp(_regexp_).\n-\t\t1. If _isRegExp_ is not *true*, throw a *TypeError* exception.\n-\t\t1. Let _S_ be ? ToString(*O*).\n-\t\t1. Let _flags_ be ? ToString(? Get(regexp, *\"flags\"*)).\n-\t\t1. If _flags_ does not contain the character *\"g\"*, let _flags_ be the String concatenation of the String *\"g\"* and _flags_.\n-\t\t1. Let _rx_ be ? RegExpCreate(_regexp_, _flags_).\n-\t\t1. Let _lastIndex_ be ? ToLength(? Get(regexp, *\"lastIndex\"*)).\n-\t\t1. Perform ? Set(_rx_, *\"lastIndex\"*, _lastIndex_, *true*).\n-\t\t1. Return ? CreateRegExpStringIterator(_rx_, _S_)\n+\t\t1. If ? IsRegExp(_regexp_) is *true*, then\n+\t\t\t1. Let _R_ be _regexp_.\n+\t\t1. Else,\n+\t\t\t1. Let _R_ be ? RegExpCreate(_regexp_, *undefined*).\n+\t\t1. Let _matcher_ be ? GetMethod(_R_, @@matchAll).\n+\t\t1. If _matcher_ is not *undefined*, then\n+\t\t\t1. Return ? Call(_matcher_, _R_, &laquo; _O_ &raquo;).\n+\t\t1. Return ? MatchAllIterator(_R_, _O_).\n+\t</emu-alg>\n+\t<emu-note>The `matchAll` function is intentionally generic, it does not require that its *this* value be a String object. Therefore, it can be transferred to other kinds of objects for use as a method.</emu-note>\n+\t<emu-note>Similarly to `String.prototype.split`, `String.prototype.matchAll` is designed to typically act without mutating its inputs.</emu-note>\n+</emu-clause>\n+</ins>\n+\n+<ins class=\"block\">\n+<emu-clause id=\"sec-regexp-prototype-matchall\">\n+\t<h1>RegExp.prototype [ @@matchAll ] ( _string_ )</h1>\n+\n+\t<p>When the `@@matchAll` method is called with argument _string_, the following steps are taken:</p>\n+\t<emu-alg>\n+\t\t1. Let _R_ be the *this* value.\n+\t\t1. If ? IsRegExp(_R_) is not *true*, throw a *TypeError* exception.\n+\t\t1. Return ? <emu-xref href=\"#sec-matchalliterator\">MatchAllIterator</emu-xref>(_R_, _string_).\n+\t</emu-alg>\n+\t<p>The value of the *name* property of this function is *\"[Symbol.matchAll]\"*.</p>\n+</emu-clause>\n+</ins>\n+\n+<ins class=\"block\">\n+<emu-clause id=\"sec-matchalliterator\" aoid-\"MatchAllIterator\">\n+\t<h1>MatchAllIterator ( _R_, _O_ )</h1>\n+\n+\t<p>The abstract operation _MatchAllIterator_ performs the following steps:</p>\n+\t<emu-alg>\n+\t\t1. Assert: IsRegExp(_R_) is *true*.\n+\t\t1. Let _S_ be ? ToString(_O_).\n+\t\t1. Let _C_ be ? SpeciesConstructor(_R_, %RegExp%).\n+\t\t1. Let _flags_ be ? ToString(? Get(_R_, *\"flags\"*)).\n+\t\t1. Let _matcher_ be ? Construct(_C_, &laquo; _R_, _flags_ &raquo;).\n+\t\t1. Let _lastIndex_ be ? ToLength(? Get(_R_, *\"lastIndex\"*)).\n+\t\t1. Perform ? Set(_matcher_, *\"lastIndex\"*, _lastIndex_, *true*).\n+\t\t1. Return ! <emu-xref href=\"#sec-createregexpstringiterator\">CreateRegExpStringIterator</emu-xref>(_matcher_, _S_).\n \t</emu-alg>\n-\t<emu-note>The _rx_ regular expression value is created solely to ensure that no visible mutation happens on _regexp_ - it should never be exposed to the environment.</emu-note>\n </emu-clause>\n+</ins>\n \n-<emu-clause id=\"CreateRegExpStringIterator\">\n+<ins class=\"block\">\n+<emu-clause id=\"sec-createregexpstringiterator\">\n \t<h1>CreateRegExpStringIterator ( _R_, _S_ )</h1>\n \n \t<p>The abstract operation _CreateRegExpStringIterator_ is used to create such iterator objects. It performs the following steps:</p>\n \t<emu-alg>\n-\t\t1. Assert: Type(_string_) is String.\n-\t\t1. If ? IsRegExp(_R_) is not *true*, throw a *TypeError* exception.\n-\t\t1. Let _global_ be ? ToBoolean(? Get(_R_, *\"global\"*));\n-\t\t1. If _global_ is not *true*, throw a *TypeError* exception.\n-\t\t1. Let _iterator_ be ObjectCreate(<emu-xref href=\"#%RegExpStringIteratorPrototype%\">%RegExpStringIteratorPrototype%</emu-xref>, &laquo; [[IteratingRegExp]], [[IteratedString]] &raquo;).\n+\t\t1. Assert: Type(_S_) is String.\n+\t\t1. Assert: IsRegExp(_R_) is *true*.\n+\t\t1. Let _iterator_ be ObjectCreate(<emu-xref href=\"#%RegExpStringIteratorPrototype%\">%RegExpStringIteratorPrototype%</emu-xref>, &laquo; [[IteratingRegExp]], [[IteratedString]], [[PreviousIndex]], [[Done]] &raquo;).\n \t\t1. Set _iterator_.[[IteratingRegExp]] to _R_.\n \t\t1. Set _iterator_.[[IteratedString]] to _S_.\n+\t\t1. Set _iterator_.[[PreviousIndex]] to *-1*.","path":"spec.emu","position":90,"original_position":90,"commit_id":"d48dfafe98861b49622cb3c47fb33f9ab7d2d0e6","original_commit_id":"d48dfafe98861b49622cb3c47fb33f9ab7d2d0e6","user":{"login":"ljharb","id":45469,"avatar_url":"https://avatars1.githubusercontent.com/u/45469?v=4","gravatar_id":"","url":"https://api.github.com/users/ljharb","html_url":"https://github.com/ljharb","followers_url":"https://api.github.com/users/ljharb/followers","following_url":"https://api.github.com/users/ljharb/following{/other_user}","gists_url":"https://api.github.com/users/ljharb/gists{/gist_id}","starred_url":"https://api.github.com/users/ljharb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ljharb/subscriptions","organizations_url":"https://api.github.com/users/ljharb/orgs","repos_url":"https://api.github.com/users/ljharb/repos","events_url":"https://api.github.com/users/ljharb/events{/privacy}","received_events_url":"https://api.github.com/users/ljharb/received_events","type":"User","site_admin":false},"body":"If I don't, then a non-sticky, non-global regex will give an infinite iterator with the same match repeated over and over again - the index is the method I chose to ensure that a regex with one match only yields one match object.","created_at":"2017-08-10T16:55:06Z","updated_at":"2017-08-10T16:55:06Z","html_url":"https://github.com/tc39/proposal-string-matchall/pull/17#discussion_r132509509","pull_request_url":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls/17","_links":{"self":{"href":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls/comments/132509509"},"html":{"href":"https://github.com/tc39/proposal-string-matchall/pull/17#discussion_r132509509"},"pull_request":{"href":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls/17"}}},"pull_request":{"url":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls/17","id":133423510,"html_url":"https://github.com/tc39/proposal-string-matchall/pull/17","diff_url":"https://github.com/tc39/proposal-string-matchall/pull/17.diff","patch_url":"https://github.com/tc39/proposal-string-matchall/pull/17.patch","issue_url":"https://api.github.com/repos/tc39/proposal-string-matchall/issues/17","number":17,"state":"open","locked":false,"title":"Refactor the spec","user":{"login":"ljharb","id":45469,"avatar_url":"https://avatars1.githubusercontent.com/u/45469?v=4","gravatar_id":"","url":"https://api.github.com/users/ljharb","html_url":"https://github.com/ljharb","followers_url":"https://api.github.com/users/ljharb/followers","following_url":"https://api.github.com/users/ljharb/following{/other_user}","gists_url":"https://api.github.com/users/ljharb/gists{/gist_id}","starred_url":"https://api.github.com/users/ljharb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ljharb/subscriptions","organizations_url":"https://api.github.com/users/ljharb/orgs","repos_url":"https://api.github.com/users/ljharb/repos","events_url":"https://api.github.com/users/ljharb/events{/privacy}","received_events_url":"https://api.github.com/users/ljharb/received_events","type":"User","site_admin":false},"body":"Highlights:\r\n - `Symbol.matchAll`\r\n - `String.prototype.matchAll` stringifies and coerces to a regex when not `IsRegExp` (the canonical test for \"it's a regex\")\r\n   - If the regex has a `Symbol.matchAll` method, it calls it\r\n   - if not, it calls into the `MatchAllIterator` abstract operation\r\n - `RegExp.prototype[Symbol.matchAll]` throws if `this` isn't a regex, and otherwise calls into `MatchAllIterator`\r\n - `MatchAllIterator` uses `SpeciesConstructor` to construct a copy of the regex using its `.flags` and `.lastIndex` and then calls into `CreateRegExpStringIterator`\r\n   - this means that the existing `lastIndex` is respected, which is particularly important for \"sticky\" regexes\r\n - `CreateRegExpStringIterator` creates a new iterator, with some internal slots to hold on to the regex, the string, the last matched index, and whether the iteration is finished or not\r\n - the effect is that a non-sticky/non-global regex will always yield one match before being \"done\", and a sticky and/or global one would yield all the matches you'd get from repeatedly `.exec`ing it, before being \"done\".\r\n\r\nI have similar changes prepared on my polyfill/shim (which I've moved to a separate repo) and will push those up and release them on npm as soon as this is merged.\r\n\r\nCloses #6. Closes #4. Closes #3. Closes #2. Closes #15.","created_at":"2017-08-01T09:09:23Z","updated_at":"2017-08-10T16:55:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c1c1e258b6c4affc6952b5612e866a5243157a05","assignee":null,"assignees":[],"requested_reviewers":[{"login":"allenwb","id":505435,"avatar_url":"https://avatars2.githubusercontent.com/u/505435?v=4","gravatar_id":"","url":"https://api.github.com/users/allenwb","html_url":"https://github.com/allenwb","followers_url":"https://api.github.com/users/allenwb/followers","following_url":"https://api.github.com/users/allenwb/following{/other_user}","gists_url":"https://api.github.com/users/allenwb/gists{/gist_id}","starred_url":"https://api.github.com/users/allenwb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allenwb/subscriptions","organizations_url":"https://api.github.com/users/allenwb/orgs","repos_url":"https://api.github.com/users/allenwb/repos","events_url":"https://api.github.com/users/allenwb/events{/privacy}","received_events_url":"https://api.github.com/users/allenwb/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls/17/commits","review_comments_url":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls/17/comments","review_comment_url":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls/comments{/number}","comments_url":"https://api.github.com/repos/tc39/proposal-string-matchall/issues/17/comments","statuses_url":"https://api.github.com/repos/tc39/proposal-string-matchall/statuses/d48dfafe98861b49622cb3c47fb33f9ab7d2d0e6","head":{"label":"tc39:redux","ref":"redux","sha":"d48dfafe98861b49622cb3c47fb33f9ab7d2d0e6","user":{"login":"tc39","id":1725583,"avatar_url":"https://avatars2.githubusercontent.com/u/1725583?v=4","gravatar_id":"","url":"https://api.github.com/users/tc39","html_url":"https://github.com/tc39","followers_url":"https://api.github.com/users/tc39/followers","following_url":"https://api.github.com/users/tc39/following{/other_user}","gists_url":"https://api.github.com/users/tc39/gists{/gist_id}","starred_url":"https://api.github.com/users/tc39/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tc39/subscriptions","organizations_url":"https://api.github.com/users/tc39/orgs","repos_url":"https://api.github.com/users/tc39/repos","events_url":"https://api.github.com/users/tc39/events{/privacy}","received_events_url":"https://api.github.com/users/tc39/received_events","type":"Organization","site_admin":false},"repo":{"id":39852046,"name":"proposal-string-matchall","full_name":"tc39/proposal-string-matchall","owner":{"login":"tc39","id":1725583,"avatar_url":"https://avatars2.githubusercontent.com/u/1725583?v=4","gravatar_id":"","url":"https://api.github.com/users/tc39","html_url":"https://github.com/tc39","followers_url":"https://api.github.com/users/tc39/followers","following_url":"https://api.github.com/users/tc39/following{/other_user}","gists_url":"https://api.github.com/users/tc39/gists{/gist_id}","starred_url":"https://api.github.com/users/tc39/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tc39/subscriptions","organizations_url":"https://api.github.com/users/tc39/orgs","repos_url":"https://api.github.com/users/tc39/repos","events_url":"https://api.github.com/users/tc39/events{/privacy}","received_events_url":"https://api.github.com/users/tc39/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/tc39/proposal-string-matchall","description":"ES Proposal, specs, tests, reference implementation, and polyfill/shim for String.prototype.matchAll","fork":false,"url":"https://api.github.com/repos/tc39/proposal-string-matchall","forks_url":"https://api.github.com/repos/tc39/proposal-string-matchall/forks","keys_url":"https://api.github.com/repos/tc39/proposal-string-matchall/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tc39/proposal-string-matchall/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tc39/proposal-string-matchall/teams","hooks_url":"https://api.github.com/repos/tc39/proposal-string-matchall/hooks","issue_events_url":"https://api.github.com/repos/tc39/proposal-string-matchall/issues/events{/number}","events_url":"https://api.github.com/repos/tc39/proposal-string-matchall/events","assignees_url":"https://api.github.com/repos/tc39/proposal-string-matchall/assignees{/user}","branches_url":"https://api.github.com/repos/tc39/proposal-string-matchall/branches{/branch}","tags_url":"https://api.github.com/repos/tc39/proposal-string-matchall/tags","blobs_url":"https://api.github.com/repos/tc39/proposal-string-matchall/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tc39/proposal-string-matchall/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tc39/proposal-string-matchall/git/refs{/sha}","trees_url":"https://api.github.com/repos/tc39/proposal-string-matchall/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tc39/proposal-string-matchall/statuses/{sha}","languages_url":"https://api.github.com/repos/tc39/proposal-string-matchall/languages","stargazers_url":"https://api.github.com/repos/tc39/proposal-string-matchall/stargazers","contributors_url":"https://api.github.com/repos/tc39/proposal-string-matchall/contributors","subscribers_url":"https://api.github.com/repos/tc39/proposal-string-matchall/subscribers","subscription_url":"https://api.github.com/repos/tc39/proposal-string-matchall/subscription","commits_url":"https://api.github.com/repos/tc39/proposal-string-matchall/commits{/sha}","git_commits_url":"https://api.github.com/repos/tc39/proposal-string-matchall/git/commits{/sha}","comments_url":"https://api.github.com/repos/tc39/proposal-string-matchall/comments{/number}","issue_comment_url":"https://api.github.com/repos/tc39/proposal-string-matchall/issues/comments{/number}","contents_url":"https://api.github.com/repos/tc39/proposal-string-matchall/contents/{+path}","compare_url":"https://api.github.com/repos/tc39/proposal-string-matchall/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tc39/proposal-string-matchall/merges","archive_url":"https://api.github.com/repos/tc39/proposal-string-matchall/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tc39/proposal-string-matchall/downloads","issues_url":"https://api.github.com/repos/tc39/proposal-string-matchall/issues{/number}","pulls_url":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls{/number}","milestones_url":"https://api.github.com/repos/tc39/proposal-string-matchall/milestones{/number}","notifications_url":"https://api.github.com/repos/tc39/proposal-string-matchall/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tc39/proposal-string-matchall/labels{/name}","releases_url":"https://api.github.com/repos/tc39/proposal-string-matchall/releases{/id}","deployments_url":"https://api.github.com/repos/tc39/proposal-string-matchall/deployments","created_at":"2015-07-28T18:52:03Z","updated_at":"2017-08-06T16:38:52Z","pushed_at":"2017-08-10T00:14:01Z","git_url":"git://github.com/tc39/proposal-string-matchall.git","ssh_url":"git@github.com:tc39/proposal-string-matchall.git","clone_url":"https://github.com/tc39/proposal-string-matchall.git","svn_url":"https://github.com/tc39/proposal-string-matchall","homepage":"https://tc39.github.io/proposal-string-matchall/","size":130,"stargazers_count":49,"watchers_count":49,"language":"HTML","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":8,"forks":1,"open_issues":8,"watchers":49,"default_branch":"master"}},"base":{"label":"tc39:master","ref":"master","sha":"3c6ffc1d99f09546fb23fb49d0f78c8650c871ca","user":{"login":"tc39","id":1725583,"avatar_url":"https://avatars2.githubusercontent.com/u/1725583?v=4","gravatar_id":"","url":"https://api.github.com/users/tc39","html_url":"https://github.com/tc39","followers_url":"https://api.github.com/users/tc39/followers","following_url":"https://api.github.com/users/tc39/following{/other_user}","gists_url":"https://api.github.com/users/tc39/gists{/gist_id}","starred_url":"https://api.github.com/users/tc39/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tc39/subscriptions","organizations_url":"https://api.github.com/users/tc39/orgs","repos_url":"https://api.github.com/users/tc39/repos","events_url":"https://api.github.com/users/tc39/events{/privacy}","received_events_url":"https://api.github.com/users/tc39/received_events","type":"Organization","site_admin":false},"repo":{"id":39852046,"name":"proposal-string-matchall","full_name":"tc39/proposal-string-matchall","owner":{"login":"tc39","id":1725583,"avatar_url":"https://avatars2.githubusercontent.com/u/1725583?v=4","gravatar_id":"","url":"https://api.github.com/users/tc39","html_url":"https://github.com/tc39","followers_url":"https://api.github.com/users/tc39/followers","following_url":"https://api.github.com/users/tc39/following{/other_user}","gists_url":"https://api.github.com/users/tc39/gists{/gist_id}","starred_url":"https://api.github.com/users/tc39/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tc39/subscriptions","organizations_url":"https://api.github.com/users/tc39/orgs","repos_url":"https://api.github.com/users/tc39/repos","events_url":"https://api.github.com/users/tc39/events{/privacy}","received_events_url":"https://api.github.com/users/tc39/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/tc39/proposal-string-matchall","description":"ES Proposal, specs, tests, reference implementation, and polyfill/shim for String.prototype.matchAll","fork":false,"url":"https://api.github.com/repos/tc39/proposal-string-matchall","forks_url":"https://api.github.com/repos/tc39/proposal-string-matchall/forks","keys_url":"https://api.github.com/repos/tc39/proposal-string-matchall/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tc39/proposal-string-matchall/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tc39/proposal-string-matchall/teams","hooks_url":"https://api.github.com/repos/tc39/proposal-string-matchall/hooks","issue_events_url":"https://api.github.com/repos/tc39/proposal-string-matchall/issues/events{/number}","events_url":"https://api.github.com/repos/tc39/proposal-string-matchall/events","assignees_url":"https://api.github.com/repos/tc39/proposal-string-matchall/assignees{/user}","branches_url":"https://api.github.com/repos/tc39/proposal-string-matchall/branches{/branch}","tags_url":"https://api.github.com/repos/tc39/proposal-string-matchall/tags","blobs_url":"https://api.github.com/repos/tc39/proposal-string-matchall/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tc39/proposal-string-matchall/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tc39/proposal-string-matchall/git/refs{/sha}","trees_url":"https://api.github.com/repos/tc39/proposal-string-matchall/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tc39/proposal-string-matchall/statuses/{sha}","languages_url":"https://api.github.com/repos/tc39/proposal-string-matchall/languages","stargazers_url":"https://api.github.com/repos/tc39/proposal-string-matchall/stargazers","contributors_url":"https://api.github.com/repos/tc39/proposal-string-matchall/contributors","subscribers_url":"https://api.github.com/repos/tc39/proposal-string-matchall/subscribers","subscription_url":"https://api.github.com/repos/tc39/proposal-string-matchall/subscription","commits_url":"https://api.github.com/repos/tc39/proposal-string-matchall/commits{/sha}","git_commits_url":"https://api.github.com/repos/tc39/proposal-string-matchall/git/commits{/sha}","comments_url":"https://api.github.com/repos/tc39/proposal-string-matchall/comments{/number}","issue_comment_url":"https://api.github.com/repos/tc39/proposal-string-matchall/issues/comments{/number}","contents_url":"https://api.github.com/repos/tc39/proposal-string-matchall/contents/{+path}","compare_url":"https://api.github.com/repos/tc39/proposal-string-matchall/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tc39/proposal-string-matchall/merges","archive_url":"https://api.github.com/repos/tc39/proposal-string-matchall/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tc39/proposal-string-matchall/downloads","issues_url":"https://api.github.com/repos/tc39/proposal-string-matchall/issues{/number}","pulls_url":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls{/number}","milestones_url":"https://api.github.com/repos/tc39/proposal-string-matchall/milestones{/number}","notifications_url":"https://api.github.com/repos/tc39/proposal-string-matchall/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tc39/proposal-string-matchall/labels{/name}","releases_url":"https://api.github.com/repos/tc39/proposal-string-matchall/releases{/id}","deployments_url":"https://api.github.com/repos/tc39/proposal-string-matchall/deployments","created_at":"2015-07-28T18:52:03Z","updated_at":"2017-08-06T16:38:52Z","pushed_at":"2017-08-10T00:14:01Z","git_url":"git://github.com/tc39/proposal-string-matchall.git","ssh_url":"git@github.com:tc39/proposal-string-matchall.git","clone_url":"https://github.com/tc39/proposal-string-matchall.git","svn_url":"https://github.com/tc39/proposal-string-matchall","homepage":"https://tc39.github.io/proposal-string-matchall/","size":130,"stargazers_count":49,"watchers_count":49,"language":"HTML","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":8,"forks":1,"open_issues":8,"watchers":49,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls/17"},"html":{"href":"https://github.com/tc39/proposal-string-matchall/pull/17"},"issue":{"href":"https://api.github.com/repos/tc39/proposal-string-matchall/issues/17"},"comments":{"href":"https://api.github.com/repos/tc39/proposal-string-matchall/issues/17/comments"},"review_comments":{"href":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls/17/comments"},"review_comment":{"href":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/tc39/proposal-string-matchall/pulls/17/commits"},"statuses":{"href":"https://api.github.com/repos/tc39/proposal-string-matchall/statuses/d48dfafe98861b49622cb3c47fb33f9ab7d2d0e6"}}}}
{"actor":{"display_login":"ljharb"}}