[whatwg] structured clone algorithm should be defined for primitive values
david at davidflanagan.com
Fri Jan 28 11:11:41 PST 2011
The structured clone algorithm is currently defined only for object
inputs and doesn't say what should happen when a primitive value is
passed to it. (The internal structured cloning algorithm handles
primitives, but the outer level one does not.)
Browser implementations allow primitives such as strings to be passed to
History.pushState(), window.postMessage() and other methods that
reference the structured clone algorithm.
I think you can fix this by changing "object" to "value" in four places:
> When a user agent is required to obtain a structured clone of an object [change this to value],
it must run the following algorithm, which either returns a separate
or throws an exception.
> Let input be the object [value] being cloned.
> Let memory be an association list of pairs of objects, initially empty. This is used to handle duplicate references. In each pair of objects, one is called the source object and the other the destination object.
> Let output be the object [value] resulting from calling the internal structured cloning algorithm with input and memory.
More information about the whatwg