From c48dc0902dfb113dfb83d27022b6b366a9081b79 Mon Sep 17 00:00:00 2001
From: Marcos Caceres
Date: Tue, 27 Jun 2017 07:35:16 -0700
Subject: [PATCH] BREAKING CHANGE(core/webidl): deprecate serializers
---
.../webidl-contiguous/serializer.html | 3 --
package.json | 2 +-
src/core/webidl.js | 34 ++-----------------
tests/spec/core/webidl-spec.js | 24 -------------
tests/spec/core/webidl.html | 11 ------
5 files changed, 3 insertions(+), 71 deletions(-)
delete mode 100644 js/core/templates/webidl-contiguous/serializer.html
diff --git a/js/core/templates/webidl-contiguous/serializer.html b/js/core/templates/webidl-contiguous/serializer.html
deleted file mode 100644
index 8dfbd5c499..0000000000
--- a/js/core/templates/webidl-contiguous/serializer.html
+++ /dev/null
@@ -1,3 +0,0 @@
-{{extAttr obj indent
-}}{{idn indent}}{{#tryLink obj}}serializer{{/tryLink
-}}{{#if values}} = {{values}}{{/if}};
diff --git a/package.json b/package.json
index 0465ce2eff..9669b654e2 100644
--- a/package.json
+++ b/package.json
@@ -51,7 +51,7 @@
"text": "github:requirejs/text",
"uglify-es": "^3.0.20",
"url-search-params": "^0.9.0",
- "webidl2": "^3.0.2"
+ "webidl2": "^4.0.0"
},
"scripts": {
"babel:build": "babel src -d js --source-maps",
diff --git a/src/core/webidl.js b/src/core/webidl.js
index 1ade1fc0b9..07d34d2db1 100644
--- a/src/core/webidl.js
+++ b/src/core/webidl.js
@@ -28,7 +28,6 @@ var idlMaplikeTmpl = tmpls["maplike.html"];
var idlMethodTmpl = tmpls["method.html"];
var idlMultiLineCommentTmpl = tmpls["multiline-comment.html"];
var idlParamTmpl = tmpls["param.html"];
-var idlSerializerTmpl = tmpls["serializer.html"];
var idlTypedefTmpl = tmpls["typedef.html"];
// TODO: make these linkable somehow.
// https://github.com/w3c/respec/issues/999
@@ -426,7 +425,6 @@ const idlKeywords = new Set([
"RegExp",
"required",
"sequence",
- "serializer",
"setlike",
"setter",
"short",
@@ -457,7 +455,6 @@ const argumentNameKeyword = new Set([
"maplike",
"partial",
"required",
- "serializer",
"setlike",
"setter",
"static",
@@ -646,7 +643,6 @@ function writeInterfaceDefinition(opt, callback) {
obj.members.forEach(function(it) {
if (
typeIsWhitespace(it.type) ||
- it.type === "serializer" ||
it.type === "maplike" ||
it.type === "iterable"
) {
@@ -671,8 +667,6 @@ function writeInterfaceDefinition(opt, callback) {
return writeMethod(ch, maxMeth, indent + 1);
case "const":
return writeConst(ch, maxConst, indent + 1);
- case "serializer":
- return writeSerializer(ch, indent + 1);
case "maplike":
return writeMaplike(ch, indent + 1);
case "iterable":
@@ -749,7 +743,6 @@ function writeMethod(meth, max, indent) {
"setter",
"deleter",
"legacycaller",
- "serializer",
"stringifier",
];
var special = "";
@@ -824,22 +817,6 @@ function writeMultiLineComment(comment, indent) {
});
}
-function writeSerializer(serializer, indent) {
- var values = "";
- if (serializer.patternMap) {
- values = "{" + serializer.names.join(", ") + "}";
- } else if (serializer.patternList) {
- values = "[" + serializer.patternList.join(", ") + "]";
- } else if (serializer.name) {
- values = serializer.name;
- }
- return idlSerializerTmpl({
- obj: serializer,
- indent: indent,
- values: values,
- });
-}
-
function writeMaplike(maplike, indent) {
var qualifiers = "";
if (maplike.readonly) qualifiers += "readonly ";
@@ -947,8 +924,7 @@ function linkDefinitions(parse, definitionMap, parent, idlElem) {
defn.setter ||
defn.deleter ||
defn.legacycaller ||
- defn.stringifier ||
- defn.serializer
+ defn.stringifier
) {
name = "";
}
@@ -978,12 +954,6 @@ function linkDefinitions(parse, definitionMap, parent, idlElem) {
defn.idlId =
"idl-def-" + parent.toLowerCase() + "-" + name.toLowerCase();
break;
- case "serializer":
- name = "serializer";
- defn.idlId =
- "idl-def-" + parent.toLowerCase() + "-" + name.toLowerCase();
- break;
-
case "implements":
case "ws":
case "ws-pea":
@@ -1170,7 +1140,7 @@ export function run(conf, doc, cb) {
$df.attr({ id: this.id });
$df
.find(
- ".idlAttribute,.idlCallback,.idlConst,.idlDictionary,.idlEnum,.idlException,.idlField,.idlInterface,.idlMember,.idlMethod,.idlSerializer,.idlMaplike,.idlIterable,.idlTypedef"
+ ".idlAttribute,.idlCallback,.idlConst,.idlDictionary,.idlEnum,.idlException,.idlField,.idlInterface,.idlMember,.idlMethod,.idlMaplike,.idlIterable,.idlTypedef"
)
.each(function() {
var elem = $(this);
diff --git a/tests/spec/core/webidl-spec.js b/tests/spec/core/webidl-spec.js
index 0c57391172..f59d0563a7 100644
--- a/tests/spec/core/webidl-spec.js
+++ b/tests/spec/core/webidl-spec.js
@@ -378,30 +378,6 @@ describe("Core - WebIDL", function() {
done();
});
- it("should handle serializer", function(done) {
- var $target = $("#serializer-map", doc);
- var text =
- "interface SerializerMap {\n" +
- " attribute DOMString foo;\n" +
- " attribute DOMString bar;\n" +
- " serializer = {foo, bar};\n" +
- "};";
- expect($target.text()).toEqual(text);
- expect($target.find(".idlSerializer").length).toEqual(1);
- var $serializer = $target.find(".idlSerializer").first();
- expect($serializer.find(".idlSerializerValues").text()).toEqual(
- "{foo, bar}"
- );
-
- // Links and IDs.
- $serializer = $target.find(".idlSerializer:contains('serializer')");
- expect($serializer.attr("id")).toEqual("idl-def-serializermap-serializer");
- expect($serializer.children("a").attr("href")).toEqual(
- "#dom-serializermap-serializer"
- );
- done();
- });
-
it("should handle comments", function(done) {
var $target = $("#comments-basic", doc);
var // TODO: Handle comments when WebIDL2 does.
diff --git a/tests/spec/core/webidl.html b/tests/spec/core/webidl.html
index 661d5859ea..b64e18de71 100644
--- a/tests/spec/core/webidl.html
+++ b/tests/spec/core/webidl.html
@@ -348,17 +348,6 @@ Operations
ull is a method. Its overloaded form returns a SuperStar/
-
- Serializer
-
- interface SerializerMap {
- attribute DOMString foo;
- attribute DOMString bar;
- serializer = { foo, bar };
- };
-
- serializer serializes a SerializerMap.
-