diff --git a/source b/source index 99890a263aa..140a2eb94fa 100644 --- a/source +++ b/source @@ -8061,7 +8061,7 @@ interface DOMStringList { serializable objects are necessarily preserved when they are serialized.
Platform objects can be serializable objects
- if they implement only interfaces decorated with the primary interface is decorated with the [Serializable]
IDL extended attribute. Such
interfaces must also define the following algorithms:
The [Serializable]
extended attribute must take no
- arguments, and must not appear on anything other than an interface. It must appear only once on an
- interface. It must not be used on a callback interface. If it appears on a partial interface or an
- interface that is really a mixin, then it must also appear on the original or mixed-in-to
- interface, and any supplied serialization steps and deserialization
- steps for the partial interface or mixin should be understood as being appended to those of
- the original or mixed-in-to interface.
For a given platform object, only the object's primary interface is
+ considered during the (de)serialization process. Thus, if inheritance is involved in defining the
+ interface, each [Serializable]
-annotated interface in the
+ inheritance chain needs to define standalone serialization steps and
+ deserialization steps, including taking into account any important data that might
+ come from inherited interfaces.
Let's say we were defining a platform object Person
, which had
@@ -8178,7 +8181,7 @@ interface DOMStringList {
been transferred, it cannot be transferred, or indeed used, again.
Platform objects can be transferable objects
- if they implement only interfaces decorated with the primary interface is decorated with the [Transferable]
IDL extended attribute. Such
interfaces must also define the following algorithms:
The [Transferable]
extended attribute must take no
- arguments, and must not appear on anything other than an interface. It must appear only once on an
- interface. It must not be used on a callback interface. If it appears on a partial interface or an
- interface that is really a mixin, then it must also appear on the original or mixed-in-to
- interface, and any supplied transfer steps and transfer-receiving
- steps for the partial interface or mixin should be understood as being appended to those of
- the original or mixed-in-to interface.
For a given platform object, only the object's primary interface is
+ considered during the transferring process. Thus, if inheritance is involved in defining the
+ interface, each [Transferable]
-annotated interface in the
+ inheritance chain needs to define standalone transfer steps and
+ transfer-receiving steps, including taking into account any important data that might
+ come from inherited interfaces.
Platform objects that are transferable objects have a DOMStringList {
Otherwise, if value is a platform object that is a serializable object, then perform the appropriate - serialization steps given value, serialized, and - forStorage.
+ data-x="serializable objects">serializable object, then perform the serialization + steps for value's primary interface, given value, + serialized, and forStorage.The serialization steps may need to perform a sub-serialization. This is an operation which takes as input a value