{"action":"created","issue":{"url":"https://api.github.com/repos/callemall/material-ui/issues/3124","labels_url":"https://api.github.com/repos/callemall/material-ui/issues/3124/labels{/name}","comments_url":"https://api.github.com/repos/callemall/material-ui/issues/3124/comments","events_url":"https://api.github.com/repos/callemall/material-ui/issues/3124/events","html_url":"https://github.com/callemall/material-ui/pull/3124","id":130236451,"number":3124,"title":"[WIP] [Core] Replace merge implementation in utils/styles with Object.assign","user":{"login":"newoga","id":344018,"avatar_url":"https://avatars.githubusercontent.com/u/344018?v=3","gravatar_id":"","url":"https://api.github.com/users/newoga","html_url":"https://github.com/newoga","followers_url":"https://api.github.com/users/newoga/followers","following_url":"https://api.github.com/users/newoga/following{/other_user}","gists_url":"https://api.github.com/users/newoga/gists{/gist_id}","starred_url":"https://api.github.com/users/newoga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/newoga/subscriptions","organizations_url":"https://api.github.com/users/newoga/orgs","repos_url":"https://api.github.com/users/newoga/repos","events_url":"https://api.github.com/users/newoga/events{/privacy}","received_events_url":"https://api.github.com/users/newoga/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/callemall/material-ui/labels/Core","name":"Core","color":"006b75"},{"url":"https://api.github.com/repos/callemall/material-ui/labels/PR:%20Needs%20Review","name":"PR: Needs Review","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-02-01T02:40:31Z","updated_at":"2016-02-01T21:06:42Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/callemall/material-ui/pulls/3124","html_url":"https://github.com/callemall/material-ui/pull/3124","diff_url":"https://github.com/callemall/material-ui/pull/3124.diff","patch_url":"https://github.com/callemall/material-ui/pull/3124.patch"},"body":"This PR splits of the some of the work that was started in #2986 that switched our merge implementation to `Object.assign`.\r\n\r\n**Don't merge yet!**\r\n\r\nThe essence of this PR is to pave the way to start using `Object.assign` for merging styles instead of a merge utility method. The problem we ran into was that Chrome's `Object.assign` implementation currently has a bug in which the keys were not always ordered properly (which sometimes led to styling bugs because of the order style properties were defined). This PR includes a babel transformation step (that needs to be reviewed) that uses the same implementation as [babel-plugin-transform-object-assign](https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-object-assign) from the babel repository, *except* it will not use the native `Object.assign` when found.\r\n\r\n**Note:** This does not replace browser's `Object.assign`, it simply uses a different method (similar to a ponyfill)."},"comment":{"url":"https://api.github.com/repos/callemall/material-ui/issues/comments/178190281","html_url":"https://github.com/callemall/material-ui/pull/3124#issuecomment-178190281","issue_url":"https://api.github.com/repos/callemall/material-ui/issues/3124","id":178190281,"user":{"login":"newoga","id":344018,"avatar_url":"https://avatars.githubusercontent.com/u/344018?v=3","gravatar_id":"","url":"https://api.github.com/users/newoga","html_url":"https://github.com/newoga","followers_url":"https://api.github.com/users/newoga/followers","following_url":"https://api.github.com/users/newoga/following{/other_user}","gists_url":"https://api.github.com/users/newoga/gists{/gist_id}","starred_url":"https://api.github.com/users/newoga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/newoga/subscriptions","organizations_url":"https://api.github.com/users/newoga/orgs","repos_url":"https://api.github.com/users/newoga/repos","events_url":"https://api.github.com/users/newoga/events{/privacy}","received_events_url":"https://api.github.com/users/newoga/received_events","type":"User","site_admin":false},"created_at":"2016-02-01T21:06:42Z","updated_at":"2016-02-01T21:06:42Z","body":"> Oh, right my bad. I misunderstood :sweat_smile:\r\n\r\nNo problem, I wrote it in a really confusing way. :smile: \r\n\r\n@oliviertassinari \r\nI was able to make a change to my babel plugin that fixes the issue about using `Object.assign` multiple times.  I was able to test it and it looks like this approach is working."}}