{"action":"created","comment":{"url":"https://api.github.com/repos/facebook/react-native/pulls/comments/44219588","id":44219588,"diff_hunk":"@@ -0,0 +1,43 @@\n+/**\n+ * Copyright (c) 2015-present, Facebook, Inc.\n+ * All rights reserved.\n+ *\n+ * This source code is licensed under the BSD-style license found in the\n+ * LICENSE file in the root directory of this source tree. An additional grant\n+ * of patent rights can be found in the PATENTS file in the same directory.\n+ *\n+ * @providesModule processTextDecorationLine\n+ */\n+'use strict';\n+\n+const textDecorationLineBitFlags = {\n+  'none': 0,\n+  'underline': 1 << 0,\n+  'line-through': 1 << 1,\n+};\n+\n+// textDecorationLine can be a string with a single enum value, a string with\n+// space-separated enum values, or an array of enum values.  Because ReactAndroid","path":"Libraries/StyleSheet/processTextDecorationLine.android.js","position":20,"original_position":20,"commit_id":"a2e80c0db87bceb4def49bb9ca1d35e79c33e0d0","original_commit_id":"a2e80c0db87bceb4def49bb9ca1d35e79c33e0d0","user":{"login":"ide","id":379606,"avatar_url":"https://avatars.githubusercontent.com/u/379606?v=3","gravatar_id":"","url":"https://api.github.com/users/ide","html_url":"https://github.com/ide","followers_url":"https://api.github.com/users/ide/followers","following_url":"https://api.github.com/users/ide/following{/other_user}","gists_url":"https://api.github.com/users/ide/gists{/gist_id}","starred_url":"https://api.github.com/users/ide/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ide/subscriptions","organizations_url":"https://api.github.com/users/ide/orgs","repos_url":"https://api.github.com/users/ide/repos","events_url":"https://api.github.com/users/ide/events{/privacy}","received_events_url":"https://api.github.com/users/ide/received_events","type":"User","site_admin":false},"body":"The array syntax is better IMO since the string syntax is legacy from CSS, which doesn't have arrays. This PR keeps around the old string syntax in case there are apps depending on it.","created_at":"2015-11-08T01:40:38Z","updated_at":"2015-11-08T01:40:38Z","html_url":"https://github.com/facebook/react-native/pull/3819#discussion_r44219588","pull_request_url":"https://api.github.com/repos/facebook/react-native/pulls/3819","_links":{"self":{"href":"https://api.github.com/repos/facebook/react-native/pulls/comments/44219588"},"html":{"href":"https://github.com/facebook/react-native/pull/3819#discussion_r44219588"},"pull_request":{"href":"https://api.github.com/repos/facebook/react-native/pulls/3819"}}},"pull_request":{"url":"https://api.github.com/repos/facebook/react-native/pulls/3819","id":49365663,"html_url":"https://github.com/facebook/react-native/pull/3819","diff_url":"https://github.com/facebook/react-native/pull/3819.diff","patch_url":"https://github.com/facebook/react-native/pull/3819.patch","issue_url":"https://api.github.com/repos/facebook/react-native/issues/3819","number":3819,"state":"open","locked":false,"title":"Flexible parsing of textDecorationLine","user":{"login":"mfenniak","id":91093,"avatar_url":"https://avatars.githubusercontent.com/u/91093?v=3","gravatar_id":"","url":"https://api.github.com/users/mfenniak","html_url":"https://github.com/mfenniak","followers_url":"https://api.github.com/users/mfenniak/followers","following_url":"https://api.github.com/users/mfenniak/following{/other_user}","gists_url":"https://api.github.com/users/mfenniak/gists{/gist_id}","starred_url":"https://api.github.com/users/mfenniak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mfenniak/subscriptions","organizations_url":"https://api.github.com/users/mfenniak/orgs","repos_url":"https://api.github.com/users/mfenniak/repos","events_url":"https://api.github.com/users/mfenniak/events{/privacy}","received_events_url":"https://api.github.com/users/mfenniak/received_events","type":"User","site_admin":false},"body":"As suggested by @ide in #3816, this PR adds flexible parsing of the textDecorationLine style so that it can be expanded upon easily in the future, and the logically equivalent \"line-through underline\" and \"underline line-through\" styles both function correctly.\r\n\r\nThis amendment went a bit off the rails from the initial plan -- I ended up using RCT_MULTI_ENUM_CONVERTER in iOS to support the multiple value enum, which also smartly supports using an array for the enum values.  That seemed like a great idea, better than space-separated enum values.  So, I added support for both approaches (space-separated OR array) because that seemed reasonable; it's backwards compatible and yet takes a smarter approach.  (Note: a side-effect of this is that UIAccessibilityTraits now supports a space-separated string of accessibility traits; doesn't seem horrible to allow this, probably wouldn't recommend documenting it.)\r\n\r\nHowever, adding support like that for the Android side became trickier, as @ReactProp can't be used on a property that doesn't have a specific supported type, and this property would support two value types.  I resolved this by converting the value in JS to an integer before passing it to the Android backend.\r\n\r\nThis PR subsumes PR #3816.","created_at":"2015-11-01T04:47:08Z","updated_at":"2015-11-08T01:40:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"638e7d563d02497fa13e1525a8558c6ffffb8559","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/facebook/react-native/pulls/3819/commits","review_comments_url":"https://api.github.com/repos/facebook/react-native/pulls/3819/comments","review_comment_url":"https://api.github.com/repos/facebook/react-native/pulls/comments{/number}","comments_url":"https://api.github.com/repos/facebook/react-native/issues/3819/comments","statuses_url":"https://api.github.com/repos/facebook/react-native/statuses/a2e80c0db87bceb4def49bb9ca1d35e79c33e0d0","head":{"label":"mfenniak:text-decoration-line-parsing","ref":"text-decoration-line-parsing","sha":"a2e80c0db87bceb4def49bb9ca1d35e79c33e0d0","user":{"login":"mfenniak","id":91093,"avatar_url":"https://avatars.githubusercontent.com/u/91093?v=3","gravatar_id":"","url":"https://api.github.com/users/mfenniak","html_url":"https://github.com/mfenniak","followers_url":"https://api.github.com/users/mfenniak/followers","following_url":"https://api.github.com/users/mfenniak/following{/other_user}","gists_url":"https://api.github.com/users/mfenniak/gists{/gist_id}","starred_url":"https://api.github.com/users/mfenniak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mfenniak/subscriptions","organizations_url":"https://api.github.com/users/mfenniak/orgs","repos_url":"https://api.github.com/users/mfenniak/repos","events_url":"https://api.github.com/users/mfenniak/events{/privacy}","received_events_url":"https://api.github.com/users/mfenniak/received_events","type":"User","site_admin":false},"repo":{"id":44687749,"name":"react-native","full_name":"mfenniak/react-native","owner":{"login":"mfenniak","id":91093,"avatar_url":"https://avatars.githubusercontent.com/u/91093?v=3","gravatar_id":"","url":"https://api.github.com/users/mfenniak","html_url":"https://github.com/mfenniak","followers_url":"https://api.github.com/users/mfenniak/followers","following_url":"https://api.github.com/users/mfenniak/following{/other_user}","gists_url":"https://api.github.com/users/mfenniak/gists{/gist_id}","starred_url":"https://api.github.com/users/mfenniak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mfenniak/subscriptions","organizations_url":"https://api.github.com/users/mfenniak/orgs","repos_url":"https://api.github.com/users/mfenniak/repos","events_url":"https://api.github.com/users/mfenniak/events{/privacy}","received_events_url":"https://api.github.com/users/mfenniak/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mfenniak/react-native","description":"A framework for building native apps with React.","fork":true,"url":"https://api.github.com/repos/mfenniak/react-native","forks_url":"https://api.github.com/repos/mfenniak/react-native/forks","keys_url":"https://api.github.com/repos/mfenniak/react-native/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mfenniak/react-native/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mfenniak/react-native/teams","hooks_url":"https://api.github.com/repos/mfenniak/react-native/hooks","issue_events_url":"https://api.github.com/repos/mfenniak/react-native/issues/events{/number}","events_url":"https://api.github.com/repos/mfenniak/react-native/events","assignees_url":"https://api.github.com/repos/mfenniak/react-native/assignees{/user}","branches_url":"https://api.github.com/repos/mfenniak/react-native/branches{/branch}","tags_url":"https://api.github.com/repos/mfenniak/react-native/tags","blobs_url":"https://api.github.com/repos/mfenniak/react-native/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mfenniak/react-native/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mfenniak/react-native/git/refs{/sha}","trees_url":"https://api.github.com/repos/mfenniak/react-native/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mfenniak/react-native/statuses/{sha}","languages_url":"https://api.github.com/repos/mfenniak/react-native/languages","stargazers_url":"https://api.github.com/repos/mfenniak/react-native/stargazers","contributors_url":"https://api.github.com/repos/mfenniak/react-native/contributors","subscribers_url":"https://api.github.com/repos/mfenniak/react-native/subscribers","subscription_url":"https://api.github.com/repos/mfenniak/react-native/subscription","commits_url":"https://api.github.com/repos/mfenniak/react-native/commits{/sha}","git_commits_url":"https://api.github.com/repos/mfenniak/react-native/git/commits{/sha}","comments_url":"https://api.github.com/repos/mfenniak/react-native/comments{/number}","issue_comment_url":"https://api.github.com/repos/mfenniak/react-native/issues/comments{/number}","contents_url":"https://api.github.com/repos/mfenniak/react-native/contents/{+path}","compare_url":"https://api.github.com/repos/mfenniak/react-native/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mfenniak/react-native/merges","archive_url":"https://api.github.com/repos/mfenniak/react-native/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mfenniak/react-native/downloads","issues_url":"https://api.github.com/repos/mfenniak/react-native/issues{/number}","pulls_url":"https://api.github.com/repos/mfenniak/react-native/pulls{/number}","milestones_url":"https://api.github.com/repos/mfenniak/react-native/milestones{/number}","notifications_url":"https://api.github.com/repos/mfenniak/react-native/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mfenniak/react-native/labels{/name}","releases_url":"https://api.github.com/repos/mfenniak/react-native/releases{/id}","created_at":"2015-10-21T15:59:07Z","updated_at":"2015-10-21T15:59:11Z","pushed_at":"2015-11-01T15:44:54Z","git_url":"git://github.com/mfenniak/react-native.git","ssh_url":"git@github.com:mfenniak/react-native.git","clone_url":"https://github.com/mfenniak/react-native.git","svn_url":"https://github.com/mfenniak/react-native","homepage":"http://facebook.github.io/react-native/","size":29652,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"facebook:master","ref":"master","sha":"d33e84dde5510522caa6cbb2d7485172d61c07d3","user":{"login":"facebook","id":69631,"avatar_url":"https://avatars.githubusercontent.com/u/69631?v=3","gravatar_id":"","url":"https://api.github.com/users/facebook","html_url":"https://github.com/facebook","followers_url":"https://api.github.com/users/facebook/followers","following_url":"https://api.github.com/users/facebook/following{/other_user}","gists_url":"https://api.github.com/users/facebook/gists{/gist_id}","starred_url":"https://api.github.com/users/facebook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/facebook/subscriptions","organizations_url":"https://api.github.com/users/facebook/orgs","repos_url":"https://api.github.com/users/facebook/repos","events_url":"https://api.github.com/users/facebook/events{/privacy}","received_events_url":"https://api.github.com/users/facebook/received_events","type":"Organization","site_admin":false},"repo":{"id":29028775,"name":"react-native","full_name":"facebook/react-native","owner":{"login":"facebook","id":69631,"avatar_url":"https://avatars.githubusercontent.com/u/69631?v=3","gravatar_id":"","url":"https://api.github.com/users/facebook","html_url":"https://github.com/facebook","followers_url":"https://api.github.com/users/facebook/followers","following_url":"https://api.github.com/users/facebook/following{/other_user}","gists_url":"https://api.github.com/users/facebook/gists{/gist_id}","starred_url":"https://api.github.com/users/facebook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/facebook/subscriptions","organizations_url":"https://api.github.com/users/facebook/orgs","repos_url":"https://api.github.com/users/facebook/repos","events_url":"https://api.github.com/users/facebook/events{/privacy}","received_events_url":"https://api.github.com/users/facebook/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/facebook/react-native","description":"A framework for building native apps with React.","fork":false,"url":"https://api.github.com/repos/facebook/react-native","forks_url":"https://api.github.com/repos/facebook/react-native/forks","keys_url":"https://api.github.com/repos/facebook/react-native/keys{/key_id}","collaborators_url":"https://api.github.com/repos/facebook/react-native/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/facebook/react-native/teams","hooks_url":"https://api.github.com/repos/facebook/react-native/hooks","issue_events_url":"https://api.github.com/repos/facebook/react-native/issues/events{/number}","events_url":"https://api.github.com/repos/facebook/react-native/events","assignees_url":"https://api.github.com/repos/facebook/react-native/assignees{/user}","branches_url":"https://api.github.com/repos/facebook/react-native/branches{/branch}","tags_url":"https://api.github.com/repos/facebook/react-native/tags","blobs_url":"https://api.github.com/repos/facebook/react-native/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/facebook/react-native/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/facebook/react-native/git/refs{/sha}","trees_url":"https://api.github.com/repos/facebook/react-native/git/trees{/sha}","statuses_url":"https://api.github.com/repos/facebook/react-native/statuses/{sha}","languages_url":"https://api.github.com/repos/facebook/react-native/languages","stargazers_url":"https://api.github.com/repos/facebook/react-native/stargazers","contributors_url":"https://api.github.com/repos/facebook/react-native/contributors","subscribers_url":"https://api.github.com/repos/facebook/react-native/subscribers","subscription_url":"https://api.github.com/repos/facebook/react-native/subscription","commits_url":"https://api.github.com/repos/facebook/react-native/commits{/sha}","git_commits_url":"https://api.github.com/repos/facebook/react-native/git/commits{/sha}","comments_url":"https://api.github.com/repos/facebook/react-native/comments{/number}","issue_comment_url":"https://api.github.com/repos/facebook/react-native/issues/comments{/number}","contents_url":"https://api.github.com/repos/facebook/react-native/contents/{+path}","compare_url":"https://api.github.com/repos/facebook/react-native/compare/{base}...{head}","merges_url":"https://api.github.com/repos/facebook/react-native/merges","archive_url":"https://api.github.com/repos/facebook/react-native/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/facebook/react-native/downloads","issues_url":"https://api.github.com/repos/facebook/react-native/issues{/number}","pulls_url":"https://api.github.com/repos/facebook/react-native/pulls{/number}","milestones_url":"https://api.github.com/repos/facebook/react-native/milestones{/number}","notifications_url":"https://api.github.com/repos/facebook/react-native/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/facebook/react-native/labels{/name}","releases_url":"https://api.github.com/repos/facebook/react-native/releases{/id}","created_at":"2015-01-09T18:10:16Z","updated_at":"2015-11-08T01:35:13Z","pushed_at":"2015-11-07T21:47:30Z","git_url":"git://github.com/facebook/react-native.git","ssh_url":"git@github.com:facebook/react-native.git","clone_url":"https://github.com/facebook/react-native.git","svn_url":"https://github.com/facebook/react-native","homepage":"http://facebook.github.io/react-native/","size":69516,"stargazers_count":22098,"watchers_count":22098,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":3407,"mirror_url":null,"open_issues_count":927,"forks":3407,"open_issues":927,"watchers":22098,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/facebook/react-native/pulls/3819"},"html":{"href":"https://github.com/facebook/react-native/pull/3819"},"issue":{"href":"https://api.github.com/repos/facebook/react-native/issues/3819"},"comments":{"href":"https://api.github.com/repos/facebook/react-native/issues/3819/comments"},"review_comments":{"href":"https://api.github.com/repos/facebook/react-native/pulls/3819/comments"},"review_comment":{"href":"https://api.github.com/repos/facebook/react-native/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/facebook/react-native/pulls/3819/commits"},"statuses":{"href":"https://api.github.com/repos/facebook/react-native/statuses/a2e80c0db87bceb4def49bb9ca1d35e79c33e0d0"}}}}