Skip to content

Commit d6a3007

Browse files
committed
Everything readonly, since FrozenArray already prevents writing. Might as well be clear that these don't have any communication channels back.
1 parent 4f28c5d commit d6a3007

File tree

1 file changed

+26
-20
lines changed

1 file changed

+26
-20
lines changed

css-parser-api/Overview.bs

+26-20
Original file line numberDiff line numberDiff line change
@@ -90,69 +90,75 @@ interface CSSParserRule {
9090
};
9191

9292
interface CSSParserAtRule : CSSParserRule {
93-
attribute DOMString name;
94-
attribute FrozenArray<CSSParserValue> prelude;
95-
attribute FrozenArray<CSSParserRule>? body;
93+
readonly attribute DOMString name;
94+
readonly attribute FrozenArray<CSSParserValue> prelude;
95+
readonly attribute FrozenArray<CSSParserRule>? body;
9696
/* nullable to handle at-statements */
9797
};
9898

9999
interface CSSParserQualifiedRule : CSSParserRule {
100-
attribute FrozenArray<CSSParserValue> prelude;
101-
attribute FrozenArray<CSSParserRule> body;
100+
readonly attribute FrozenArray<CSSParserValue> prelude;
101+
readonly attribute FrozenArray<CSSParserRule> body;
102102
};
103103

104104
interface CSSParserDeclaration : CSSParserRule {
105-
attribute DOMString name;
106-
attribute FrozenArray<CSSParserValue> body;
105+
readonly attribute DOMString name;
106+
readonly attribute FrozenArray<CSSParserValue> body;
107107
};
108108

109109
interface CSSParserValue {
110110
};
111111

112112
interface CSSParserBlock : CSSParserValue {
113-
attribute DOMString name; /* "[]", "{}", or "()" */
114-
attribute FrozenArray<CSSParserValue> body;
113+
readonly attribute DOMString name; /* "[]", "{}", or "()" */
114+
readonly attribute FrozenArray<CSSParserValue> body;
115115
};
116116

117117
interface CSSParserFunction : CSSParserValue {
118-
attribute DOMString name;
119-
attribute FrozenArray<FrozenArray<CSSParserValue>> args;
118+
readonly attribute DOMString name;
119+
readonly attribute FrozenArray<FrozenArray<CSSParserValue>> args;
120120
};
121121

122122
interface CSSParserIdent : CSSParserValue {
123-
attribute DOMString value;
123+
readonly attribute DOMString value;
124124
};
125125

126126
interface CSSParserNumber : CSSParserValue {
127-
attribute double value;
127+
readonly attribute double value;
128128
};
129129

130130
interface CSSParserPercentage : CSSParserValue {
131-
attribute double value;
131+
readonly attribute double value;
132132
};
133133

134134
interface CSSParserDimension : CSSParserValue {
135-
attribute double value;
136-
attribute DOMString type;
135+
readonly attribute double value;
136+
readonly attribute DOMString type;
137137
};
138138

139139
interface CSSParserAtKeyword : CSSParserValue {
140-
attribute DOMString value;
140+
readonly attribute DOMString value;
141141
};
142142

143143
interface CSSParserHash : CSSParserValue {
144-
attribute DOMString value;
144+
readonly attribute DOMString value;
145145
/* expose an "is ident" boolean? */
146146
};
147147

148148
interface CSSParserString : CSSParserValue {
149-
attribute DOMString value;
149+
readonly attribute DOMString value;
150150
};
151151

152152
interface CSSParserChar : CSSParserValue {
153-
attribute DOMString value;
153+
readonly attribute DOMString value;
154154
/* for all delims, whitespace, and the
155155
weird Selectors-based tokens
156156
(split up into the individual chars) */
157157
};
158158
</pre>
159+
160+
Issue: Some of the CSSParserValue subtypes correspond closely to Typed OM types;
161+
in particular, {{CSSParserIdent}} and {{CSSKeywordValue}} are basically the same thing,
162+
as are {{CSSParserNumber}} and {{CSSNumberValue}}.
163+
Is it worthwhile to transplant this hierarchy underneath the {{CSSStyleValue}} superclass,
164+
and reuse the ones that are reasonable?

0 commit comments

Comments
 (0)