Changeset 227969 in webkit


Ignore:
Timestamp:
Feb 1, 2018 9:22:35 AM (6 years ago)
Author:
Yusuke Suzuki
Message:

Structured cloning a Symbol should throw
https://bugs.webkit.org/show_bug.cgi?id=182380

Reviewed by Darin Adler.

Source/WebCore:

Test: js/dom/post-message-symbol.html

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpIfTerminal):
Structured cloning should throw "DataCloneError" DOMException if it finds Symbol.
Remove unused isNumber() case. It is done in dumpImmediate.
(WebCore::CloneSerializer::serializeUndefined): Deleted.
(WebCore::CloneSerializer::serializeBoolean): Deleted.
(WebCore::CloneSerializer::serializeNumber): Deleted.
Remove unused functions.

LayoutTests:

  • js/dom/post-message-symbol-expected.txt: Added.
  • js/dom/post-message-symbol.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r227968 r227969  
     12018-02-01  Yusuke Suzuki  <utatane.tea@gmail.com>
     2
     3        Structured cloning a Symbol should throw
     4        https://bugs.webkit.org/show_bug.cgi?id=182380
     5
     6        Reviewed by Darin Adler.
     7
     8        * js/dom/post-message-symbol-expected.txt: Added.
     9        * js/dom/post-message-symbol.html: Added.
     10
    1112018-02-01  Antoine Quint  <graouts@apple.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r227967 r227969  
     12018-02-01  Yusuke Suzuki  <utatane.tea@gmail.com>
     2
     3        Structured cloning a Symbol should throw
     4        https://bugs.webkit.org/show_bug.cgi?id=182380
     5
     6        Reviewed by Darin Adler.
     7
     8        Test: js/dom/post-message-symbol.html
     9
     10        * bindings/js/SerializedScriptValue.cpp:
     11        (WebCore::CloneSerializer::dumpIfTerminal):
     12        Structured cloning should throw "DataCloneError" DOMException if it finds Symbol.
     13        Remove unused `isNumber()` case. It is done in dumpImmediate.
     14        (WebCore::CloneSerializer::serializeUndefined): Deleted.
     15        (WebCore::CloneSerializer::serializeBoolean): Deleted.
     16        (WebCore::CloneSerializer::serializeNumber): Deleted.
     17        Remove unused functions.
     18
    1192018-02-01  Chris Dumez  <cdumez@apple.com>
    220
  • trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp

    r226322 r227969  
    562562    }
    563563
    564     static void serializeUndefined(Vector<uint8_t>& out)
    565     {
    566         writeLittleEndian(out, CurrentVersion);
    567         writeLittleEndian<uint8_t>(out, UndefinedTag);
    568     }
    569 
    570     static void serializeBoolean(bool value, Vector<uint8_t>& out)
    571     {
    572         writeLittleEndian(out, CurrentVersion);
    573         writeLittleEndian<uint8_t>(out, value ? TrueTag : FalseTag);
    574     }
    575 
    576     static void serializeNumber(double value, Vector<uint8_t>& out)
    577     {
    578         writeLittleEndian(out, CurrentVersion);
    579         writeLittleEndian<uint8_t>(out, DoubleTag);
    580         union {
    581             double d;
    582             int64_t i;
    583         } u;
    584         u.d = value;
    585         writeLittleEndian(out, u.i);
    586     }
    587 
    588564private:
    589565    typedef HashMap<JSObject*, uint32_t> ObjectPool;
     
    904880            return true;
    905881        }
     882        ASSERT(value.isCell());
    906883
    907884        if (value.isString()) {
     
    910887        }
    911888
    912         if (value.isNumber()) {
    913             write(DoubleTag);
    914             write(value.asNumber());
     889        if (value.isSymbol()) {
     890            code = SerializationReturnCode::DataCloneError;
    915891            return true;
    916892        }
Note: See TracChangeset for help on using the changeset viewer.