Skip to content

Commit

Permalink
fixup! Add spec_url data for JavaScript features
Browse files Browse the repository at this point in the history
Per mdn#2983 (comment)
review comments. This change should be squashed before this is merged to master.
  • Loading branch information
sideshowbarker committed Nov 10, 2018
1 parent 11740bd commit 6b35508
Show file tree
Hide file tree
Showing 19 changed files with 97 additions and 91 deletions.
55 changes: 30 additions & 25 deletions add-specs.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,19 +129,25 @@ def getSpecURLsArray(mdn_url, sectionname, http):
return []


def walkBaseData(basedata, filename, http, basename, sectionname,
bcd_data):
for featurename in basedata:
feature_data = basedata[featurename]
path = '%s.%s.%s' % (sectionname, basename, featurename)
bcd_data[sectionname][basename][featurename] = \
processTarget(feature_data, filename, http, path)
for subfeaturename in feature_data:
subfeaturedata = feature_data[subfeaturename]
path = '%s.%s.%s.%s' % (sectionname, basename, featurename,
subfeaturename)
bcd_data[sectionname][basename][featurename][subfeaturename] = \
processTarget(subfeaturedata, filename, http, path)
def walkL1Data(l2data, filename, http, l2name, l1name, bcd_data):
for l3name in l2data:
l3data = l2data[l3name]
path = '%s.%s.%s' % (l1name, l2name, l3name)
bcd_data[l1name][l2name][l3name] = \
processTarget(l3data, filename, http, path)
for l4name in l3data:
l4data = l3data[l4name]
path = '%s.%s.%s.%s' % (l1name, l2name, l3name, l4name)
bcd_data[l1name][l2name][l3name][l4name] = \
processTarget(l4data, filename, http, path)
if not isinstance(l4data, list):
continue
for l5name in l4data:
l5data = l4data[l5name]
path = '%s.%s.%s.%s.%s' % \
(l1name, l2name, l3name, l4name, l5name)
bcd_data[l1name][l2name][l3name][l4name][l5name] = \
processTarget(l5data, filename, http, path)


def processTarget(target, filename, http, path):
Expand All @@ -153,8 +159,6 @@ def processTarget(target, filename, http, path):
if '_' not in path:
alarm('%s in %s has no mdn_url' % (path, filename))
return target
if target_data['status']['deprecated']:
return target
if 'spec_urls' in target_data:
if not(len(sys.argv) > 1 and sys.argv[1] == 'fullupdate'):
return target
Expand All @@ -166,6 +170,8 @@ def processTarget(target, filename, http, path):
else:
del target['__compat']['spec_url']
mdn_url = target_data['mdn_url']
if urlparse(mdn_url).fragment:
return target
spec_urls = getSpecURLsArray(mdn_url, 'Specifications', http)
if not(spec_urls):
spec_urls = getSpecURLsArray(mdn_url, 'Specification', http)
Expand Down Expand Up @@ -216,16 +222,15 @@ def main():
continue
f = io.open(filename, 'r+', encoding='utf-8')
bcd_data = json.load(f, object_pairs_hook=OrderedDict)
for sectionname in bcd_data:
for basename in bcd_data[sectionname]:
basedata = bcd_data[sectionname][basename]
path = '%s.%s' % (sectionname, basename)
path = sectionname + '.' + basename
bcd_data[sectionname][basename] = \
processTarget(basedata, filename, http, path)
if basedata:
walkBaseData(basedata, filename, http, basename,
sectionname, bcd_data)
for l1name in bcd_data:
for l2name in bcd_data[l1name]:
l2data = bcd_data[l1name][l2name]
path = '%s.%s' % (l1name, l2name)
bcd_data[l1name][l2name] = \
processTarget(l2data, filename, http, path)
if l2data:
walkL1Data(l2data, filename, http, l2name, l1name,
bcd_data)
f.seek(0)
f.write(unicode(json.dumps(bcd_data, indent=2,
separators=(',', ': '),
Expand Down
3 changes: 3 additions & 0 deletions javascript/builtins/Date.json
Original file line number Diff line number Diff line change
Expand Up @@ -1159,6 +1159,7 @@
"getYear": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date/getYear",
"spec_url": "https://tc39.github.io/ecma262/#sec-date.prototype.getyear",
"support": {
"chrome": {
"version_added": true
Expand Down Expand Up @@ -2311,6 +2312,7 @@
"setYear": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date/setYear",
"spec_url": "https://tc39.github.io/ecma262/#sec-date.prototype.setyear",
"support": {
"chrome": {
"version_added": true
Expand Down Expand Up @@ -2420,6 +2422,7 @@
"toGMTString": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date/toGMTString",
"spec_url": "https://tc39.github.io/ecma262/#sec-date.prototype.togmtstring",
"support": {
"chrome": {
"version_added": true
Expand Down
1 change: 1 addition & 0 deletions javascript/builtins/Function.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
"arguments": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/arguments",
"spec_url": "https://tc39.github.io/ecma262/#sec-arguments-object",
"support": {
"chrome": {
"version_added": true
Expand Down
14 changes: 14 additions & 0 deletions javascript/builtins/Intl.json
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,7 @@
"prototype": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.Collator.prototype",
"support": {
"chrome": {
"version_added": "24"
Expand Down Expand Up @@ -275,6 +276,7 @@
"compare": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Collator/compare",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.Collator.prototype.compare",
"support": {
"chrome": {
"version_added": "24"
Expand Down Expand Up @@ -329,6 +331,7 @@
"resolvedOptions": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Collator/resolvedOptions",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.Collator.prototype.resolvedOptions",
"support": {
"chrome": {
"version_added": "24"
Expand Down Expand Up @@ -383,6 +386,7 @@
"supportedLocalesOf": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Collator/supportedLocalesOf",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.Collator.supportedLocalesOf",
"support": {
"chrome": {
"version_added": "24"
Expand Down Expand Up @@ -599,6 +603,7 @@
"prototype": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/prototype",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.DateTimeFormat.prototype",
"support": {
"chrome": {
"version_added": "24"
Expand Down Expand Up @@ -653,6 +658,7 @@
"format": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/format",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.DateTimeFormat.prototype.format",
"support": {
"chrome": {
"version_added": "24"
Expand Down Expand Up @@ -707,6 +713,7 @@
"formatToParts": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.DateTimeFormat.prototype.formatToParts",
"support": {
"chrome": [
{
Expand Down Expand Up @@ -773,6 +780,7 @@
"resolvedOptions": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/resolvedOptions",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.DateTimeFormat.prototype.resolvedOptions",
"support": {
"chrome": {
"version_added": "24"
Expand Down Expand Up @@ -881,6 +889,7 @@
"supportedLocalesOf": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Collator/supportedLocalesOf",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.Collator.supportedLocalesOf",
"support": {
"chrome": {
"version_added": "24"
Expand Down Expand Up @@ -990,6 +999,7 @@
"prototype": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/prototype",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.NumberFormat.prototype",
"support": {
"chrome": {
"version_added": "24"
Expand Down Expand Up @@ -1044,6 +1054,7 @@
"format": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/format",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.NumberFormat.prototype.format",
"support": {
"chrome": {
"version_added": "24"
Expand Down Expand Up @@ -1098,6 +1109,7 @@
"formatToParts": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/formatToParts",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.NumberFormat.prototype.formatToParts",
"support": {
"chrome": {
"version_added": "63",
Expand Down Expand Up @@ -1166,6 +1178,7 @@
"resolvedOptions": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/resolvedOptions",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.NumberFormat.prototype.resolvedOptions",
"support": {
"chrome": {
"version_added": "24"
Expand Down Expand Up @@ -1220,6 +1233,7 @@
"supportedLocalesOf": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/supportedLocalesOf",
"spec_url": "https://tc39.github.io/ecma402/#sec-Intl.NumberFormat.supportedLocalesOf",
"support": {
"chrome": {
"version_added": "24"
Expand Down
1 change: 0 additions & 1 deletion javascript/builtins/JSON.json
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,6 @@
"__compat": {
"description": "JavaScript is a superset of JSON",
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/JSON#JavaScript_and_JSON_differences",
"spec_url": "https://tc39.github.io/ecma262/#sec-json-object",
"support": {
"chrome": {
"version_added": "66"
Expand Down
5 changes: 5 additions & 0 deletions javascript/builtins/Object.json
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,7 @@
"__compat": {
"description": "<code>__proto__</code>",
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/proto",
"spec_url": "https://tc39.github.io/ecma262/#sec-additional-properties-of-the-object.prototype-object",
"support": {
"chrome": {
"version_added": true
Expand Down Expand Up @@ -1569,6 +1570,7 @@
"__compat": {
"description": "<code>__defineGetter__</code>",
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__",
"spec_url": "https://tc39.github.io/ecma262/#sec-object.prototype.__defineGetter__",
"support": {
"chrome": {
"version_added": true
Expand Down Expand Up @@ -1625,6 +1627,7 @@
"__compat": {
"description": "<code>__defineSetter__</code>",
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__",
"spec_url": "https://tc39.github.io/ecma262/#sec-object.prototype.__defineSetter__",
"support": {
"chrome": {
"version_added": true
Expand Down Expand Up @@ -1681,6 +1684,7 @@
"__compat": {
"description": "<code>__lookupGetter__</code>",
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__",
"spec_url": "https://tc39.github.io/ecma262/#sec-object.prototype.__lookupGetter__",
"support": {
"chrome": {
"version_added": true
Expand Down Expand Up @@ -1736,6 +1740,7 @@
"__compat": {
"description": "<code>__lookupSetter__</code>",
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__",
"spec_url": "https://tc39.github.io/ecma262/#sec-object.prototype.__lookupSetter__",
"support": {
"chrome": {
"version_added": true
Expand Down
13 changes: 13 additions & 0 deletions javascript/builtins/Proxy.json
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@
"apply": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/apply",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist",
"support": {
"chrome": {
"version_added": "49"
Expand Down Expand Up @@ -168,6 +169,7 @@
"construct": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/construct",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-construct-argumentslist-newtarget",
"support": {
"chrome": {
"version_added": "49"
Expand Down Expand Up @@ -222,6 +224,7 @@
"defineProperty": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/defineProperty",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-defineownproperty-p-desc",
"support": {
"chrome": {
"version_added": "49"
Expand Down Expand Up @@ -276,6 +279,7 @@
"deleteProperty": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/deleteProperty",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-delete-p",
"support": {
"chrome": {
"version_added": "49"
Expand Down Expand Up @@ -386,6 +390,7 @@
"get": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/get",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver",
"support": {
"chrome": {
"version_added": "49"
Expand Down Expand Up @@ -440,6 +445,7 @@
"getOwnPropertyDescriptor": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/getOwnPropertyDescriptor",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-getownproperty-p",
"support": {
"chrome": {
"version_added": "49"
Expand Down Expand Up @@ -494,6 +500,7 @@
"getPrototypeOf": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/getPrototypeOf",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-getprototypeof",
"support": {
"chrome": {
"version_added": false
Expand Down Expand Up @@ -548,6 +555,7 @@
"has": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/has",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p",
"support": {
"chrome": {
"version_added": "49"
Expand Down Expand Up @@ -602,6 +610,7 @@
"isExtensible": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/isExtensible",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-isextensible",
"support": {
"chrome": {
"version_added": null
Expand Down Expand Up @@ -656,6 +665,7 @@
"ownKeys": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/ownKeys",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys",
"support": {
"chrome": {
"version_added": "49"
Expand Down Expand Up @@ -712,6 +722,7 @@
"preventExtensions": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/preventExtensions",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-preventextensions",
"support": {
"chrome": {
"version_added": "49"
Expand Down Expand Up @@ -766,6 +777,7 @@
"set": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/set",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver",
"support": {
"chrome": {
"version_added": "49"
Expand Down Expand Up @@ -820,6 +832,7 @@
"setPrototypeOf": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/setPrototypeOf",
"spec_url": "https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-setprototypeof-v",
"support": {
"chrome": {
"version_added": null
Expand Down
1 change: 1 addition & 0 deletions javascript/builtins/RegExp.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
"compile": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp/compile",
"spec_url": "https://tc39.github.io/ecma262/#sec-regexp.prototype.compile",
"support": {
"chrome": {
"version_added": true
Expand Down
Loading

0 comments on commit 6b35508

Please sign in to comment.