Skip to content
This repository has been archived by the owner on May 11, 2018. It is now read-only.

Respect older versions in invert equals map #180

Merged
merged 9 commits into from Mar 3, 2017
Merged

Conversation

danez
Copy link
Member

@danez danez commented Mar 2, 2017

This fixes issues, that some data from compat-table was not correctly imported.

The main issue is that compat-table sets an equals for node7

node7 equals chrome54 because node7 uses v8 5.4
but the features might be already available since an earlier version of v8
For example exponentiation operator is available since v8 5.2 (in compat-table chrome52)
Though without this patch we don't have an entry in the inverse-equals-map, we only have chrom54->node7.

This corrects the behaviour and adds all older versions of an env also to the map.

Fixes #45
Fixes #86

@existentialism
Copy link
Member

Did a quick check, plugins look 👍. Didn't do an exhaustive check on built-ins but they generally look correct as well.

@hzoo
Copy link
Member

hzoo commented Mar 2, 2017

debug output tests fail, just need to modify

@danez
Copy link
Member Author

danez commented Mar 2, 2017

Some are wrong because of compat-table/compat-table#1039

"node": 7,
"opera": 41
},
"es7.object.get-own-property-descriptors": {
"chrome": 54,
"edge": 15,
"firefox": 50,
"safari": 10,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is because of this matches both tests in compat-table and only one is true in sf10.

This happens because of this logic: https://github.com/babel/babel-preset-env/blob/master/scripts/build-data.js#L89

I think this is okay, as in sf10 it seems to be not implemented completely, but not sure what the intention was here.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm if it's a top level thing it's supposed to match on both

like in "es6.array.iterator"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That what it is doing (now)? and only on of the features is available on sf10

@danez
Copy link
Member Author

danez commented Mar 2, 2017

Ok I fixed the node4 issue locally to generate the correct data.

And also checked all additions and changes, and they all seem correct.

I also tried #86 but it did not give the same results, not even for the case described in the initial description of this ticket, so I didn't look further into it. But this will fix #45 and fix #68

@danez
Copy link
Member Author

danez commented Mar 3, 2017

Okay I fixed the last issues, now also correctly handles ios8.

I feel confident I'm done now. :)

@danez
Copy link
Member Author

danez commented Mar 3, 2017

This is what the reversemap looks like now:

{ safari3: [ 'phantom', 'ios6', 'ios7', 'ios8', 'ios9', 'ios10' ],
  safari4: [ 'phantom', 'ios6', 'ios7', 'ios8', 'ios9', 'ios10' ],
  safari5: [ 'phantom', 'ios6', 'ios7', 'ios8', 'ios9', 'ios10' ],
  safari6: [ 'phantom', 'ios7', 'ios8', 'ios9', 'ios10' ],
  chrome1: [ 'node4', 'node6', 'node65',  'node7', 'node76',  'android44', 'android50', 'android51' ],
  chrome2: [ 'node4', 'node6', 'node65',  'node7', 'node76',  'android44', 'android50', 'android51' ],
  chrome3: [ 'node4', 'node6', 'node65',  'node7', 'node76',  'android44', 'android50', 'android51' ],
  chrome4: [ 'node4', 'node6', 'node65',  'node7', 'node76',  'android44', 'android50', 'android51' ],
  chrome5: [ 'node4', 'node6', 'node65',  'node7', 'node76',  'android44', 'android50', 'android51' ],
  chrome6: [ 'node4', 'node6', 'node65',  'node7', 'node76',  'android44', 'android50', 'android51' ],
  chrome7: [ 'node4', 'node6', 'node65',  'node7', 'node76',  'android44', 'android50', 'android51' ],
  chrome8: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome9: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome10: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome11: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome12: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome13: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome14: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome15: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome16: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome17: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome18: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome19: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome20: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome21: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome22: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome23: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome24: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome25: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome26: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome27: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome28: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome29: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome30: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android44', 'android50', 'android51' ],
  chrome31: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android50', 'android51' ],
  chrome32: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android50', 'android51' ],
  chrome33: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android50', 'android51' ],
  chrome34: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android50', 'android51' ],
  chrome35: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android50', 'android51' ],
  chrome36: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android50', 'android51' ],
  chrome37: [ 'node4', 'node6', 'node65',  'node7', 'node76', 'android50', 'android51' ],
  chrome38: [ 'node4', 'node6', 'node65', 'node7', 'node76', 'android51' ],
  chrome39: [ 'node4', 'node6', 'node65', 'node7', 'node76', 'android51' ],
  chrome40: [ 'node4', 'node6', 'node65', 'node7', 'node76' ],
  chrome41: [ 'node4', 'node6', 'node65', 'node7', 'node76' ],
  chrome42: [ 'node4', 'node6', 'node65', 'node7', 'node76' ],
  chrome43: [ 'node4', 'node6', 'node65', 'node7', 'node76' ],
  chrome44: [ 'node4', 'node6', 'node65', 'node7', 'node76' ],
  chrome45: [ 'node4', 'node6', 'node65', 'node7', 'node76' ],
  chrome46: [ 'node6', 'node65', 'node7', 'node76' ],
  chrome47: [ 'node6', 'node65', 'node7', 'node76' ],
  chrome48: [ 'node6', 'node65', 'node7', 'node76' ],
  chrome49: [ 'node6', 'node65', 'node7', 'node76' ],
  chrome50: [ 'node6', 'node65', 'node7', 'node76' ],
  chrome51: [ 'node65', 'node7', 'node76' ],
  chrome52: [ 'node7', 'node76' ],
  chrome53: [ 'node7', 'node76' ],
  chrome54: [ 'node7', 'node76' ],
  chrome55: [ 'node76' ],
  safari7: [ 'ios7', 'ios8', 'ios9', 'ios10' ],
  safari8: [ 'ios8', 'ios9', 'ios10' ],
  safari9: [ 'ios9', 'ios10' ],
  safari10: [ 'ios10' ] }

Copy link
Member

@hzoo hzoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yesss

@hzoo hzoo merged commit f0b6e51 into master Mar 3, 2017
@danez danez deleted the fix-compat-import branch March 3, 2017 20:44
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants