Changeset 260404 in webkit
- Timestamp:
- Apr 20, 2020 3:32:59 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r260403 r260404 1 2020-04-20 Yusuke Suzuki <ysuzuki@apple.com> 2 3 Add more structure-cloning tests for BigInt 4 https://bugs.webkit.org/show_bug.cgi?id=210765 5 6 Reviewed by Mark Lam. 7 8 Add more tests for BigInt outside of WPT (they are already tested in WPT, but this adds more tests). 9 10 * fast/dom/Window/window-postmessage-clone-expected.txt: 11 * fast/dom/Window/window-postmessage-clone.html: 12 * platform/gtk/fast/dom/Window/window-postmessage-clone-expected.txt: 13 1 14 2020-04-20 Simon Fraser <simon.fraser@apple.com> 2 15 -
trunk/LayoutTests/fast/dom/Window/window-postmessage-clone-expected.txt
r219663 r260404 14 14 PASS: eventData is true of type boolean 15 15 PASS: eventData is 1 of type string 16 PASS: eventData is 0 of type bigint 17 PASS: eventData is -20 of type bigint 18 PASS: eventData is 4294967295 of type bigint 19 PASS: eventData is -4294967295 of type bigint 20 PASS: eventData is 2147483647 of type bigint 21 PASS: eventData is 2147483648 of type bigint 22 PASS: eventData is -2147483648 of type bigint 23 PASS: eventData is -2147483649 of type bigint 24 PASS: eventData is 68719476735 of type bigint 25 PASS: eventData is -68719476735 of type bigint 26 PASS: eventData is 1000000000000000000000000000000000 of type bigint 27 PASS: eventData is -1000000000000000000000000000000000 of type bigint 28 PASS: eventData is 1461501637330902918203684832716283019655932542975 of type bigint 29 PASS: eventData is -1461501637330902918203684832716283019655932542975 of type bigint 30 PASS: eventData is 4722366482869645213695 of type bigint 31 PASS: eventData is -4722366482869645213695 of type bigint 16 32 PASS: eventData is [object Object] of type object 17 33 PASS: eventData is [object Object] of type object … … 34 50 PASS: eventData is gnirts of type object 35 51 PASS: eventData is 42 of type object 52 PASS: eventData is 0 of type object 53 PASS: eventData is -20 of type object 54 PASS: eventData is 4294967295 of type object 55 PASS: eventData is -4294967295 of type object 56 PASS: eventData is 2147483647 of type object 57 PASS: eventData is 2147483648 of type object 58 PASS: eventData is -2147483648 of type object 59 PASS: eventData is -2147483649 of type object 60 PASS: eventData is 68719476735 of type object 61 PASS: eventData is -68719476735 of type object 62 PASS: eventData is 1000000000000000000000000000000000 of type object 63 PASS: eventData is -1000000000000000000000000000000000 of type object 64 PASS: eventData is 1461501637330902918203684832716283019655932542975 of type object 65 PASS: eventData is -1461501637330902918203684832716283019655932542975 of type object 66 PASS: eventData is 4722366482869645213695 of type object 67 PASS: eventData is -4722366482869645213695 of type object 36 68 PASS: eventData is === to eventData.self 37 69 PASS: eventData is === to eventData[0] … … 116 148 PASS: Number object properties not serialized 117 149 PASS: Boolean object properties not serialized 150 PASS: BigInt object properties not serialized 151 PASS: BigInt (BigInt32) object properties not serialized 118 152 PASS: Date values correct (0) 119 153 PASS: Date values correct (1) -
trunk/LayoutTests/fast/dom/Window/window-postmessage-clone.html
r217466 r260404 14 14 tryPostMessage('true'); 15 15 tryPostMessage('"1"'); 16 tryPostMessage('0n'); 17 tryPostMessage('-20n'); 18 tryPostMessage('4294967295n'); 19 tryPostMessage('-4294967295n'); 20 tryPostMessage('2147483647n'); 21 tryPostMessage('2147483648n'); 22 tryPostMessage('-2147483648n'); 23 tryPostMessage('-2147483649n'); 24 tryPostMessage('68719476735n'); 25 tryPostMessage('-68719476735n'); 26 tryPostMessage('1000000000000000000000000000000000n'); 27 tryPostMessage('-1000000000000000000000000000000000n'); 28 tryPostMessage('1461501637330902918203684832716283019655932542975n'); 29 tryPostMessage('-1461501637330902918203684832716283019655932542975n'); 30 tryPostMessage('4722366482869645213695n'); 31 tryPostMessage('-4722366482869645213695n'); 16 32 tryPostMessage('({})'); 17 33 tryPostMessage('({a:1})'); … … 36 52 tryPostMessage('new String("gnirts")'); 37 53 tryPostMessage('new Number(42.0)'); 54 tryPostMessage('Object(0n)'); 55 tryPostMessage('Object(-20n)'); 56 tryPostMessage('Object(4294967295n)'); 57 tryPostMessage('Object(-4294967295n)'); 58 tryPostMessage('Object(2147483647n)'); 59 tryPostMessage('Object(2147483648n)'); 60 tryPostMessage('Object(-2147483648n)'); 61 tryPostMessage('Object(-2147483649n)'); 62 tryPostMessage('Object(68719476735n)'); 63 tryPostMessage('Object(-68719476735n)'); 64 tryPostMessage('Object(1000000000000000000000000000000000n)'); 65 tryPostMessage('Object(-1000000000000000000000000000000000n)'); 66 tryPostMessage('Object(1461501637330902918203684832716283019655932542975n)'); 67 tryPostMessage('Object(-1461501637330902918203684832716283019655932542975n)'); 68 tryPostMessage('Object(4722366482869645213695n)'); 69 tryPostMessage('Object(-4722366482869645213695n)'); 38 70 cyclicObject={}; 39 71 cyclicObject.self = cyclicObject; … … 288 320 }); 289 321 290 // Properties added to String, Boolean and Numberobjects should not be serialized.322 // Properties added to String, Boolean, Number, and BigInt objects should not be serialized. 291 323 tryPostMessage(thunk( 292 324 'var s = new String("gnirts"); ' + 293 325 'var n = new Number(42.0); ' + 294 326 'var b = new Boolean(true); ' + 295 's.foo = 1; n.foo = 2; b.foo = 3; ' + 296 'return [s, n, b];' 327 'var i = Object(100000000000000000000n); ' + 328 'var i32 = Object(10n); ' + 329 's.foo = 1; n.foo = 2; b.foo = 3; i.foo = 4; i32.foo = 5; ' + 330 'return [s, n, b, i, i32];' 297 331 ), false, "evalThunk", function(v) { 298 332 doPassFail(v[0].foo == undefined, "String object properties not serialized"); 299 333 doPassFail(v[1].foo == undefined, "Number object properties not serialized"); 300 334 doPassFail(v[2].foo == undefined, "Boolean object properties not serialized"); 335 doPassFail(v[3].foo == undefined, "BigInt object properties not serialized"); 336 doPassFail(v[4].foo == undefined, "BigInt (BigInt32) object properties not serialized"); 301 337 }); 302 338 -
trunk/LayoutTests/platform/gtk/fast/dom/Window/window-postmessage-clone-expected.txt
r155037 r260404 10 10 PASS: eventData is true of type boolean 11 11 PASS: eventData is 1 of type string 12 PASS: eventData is 0 of type bigint 13 PASS: eventData is -20 of type bigint 14 PASS: eventData is 4294967295 of type bigint 15 PASS: eventData is -4294967295 of type bigint 16 PASS: eventData is 2147483647 of type bigint 17 PASS: eventData is 2147483648 of type bigint 18 PASS: eventData is -2147483648 of type bigint 19 PASS: eventData is -2147483649 of type bigint 20 PASS: eventData is 68719476735 of type bigint 21 PASS: eventData is -68719476735 of type bigint 22 PASS: eventData is 1000000000000000000000000000000000 of type bigint 23 PASS: eventData is -1000000000000000000000000000000000 of type bigint 24 PASS: eventData is 1461501637330902918203684832716283019655932542975 of type bigint 25 PASS: eventData is -1461501637330902918203684832716283019655932542975 of type bigint 26 PASS: eventData is 4722366482869645213695 of type bigint 27 PASS: eventData is -4722366482869645213695 of type bigint 12 28 PASS: eventData is [object Object] of type object 13 29 PASS: eventData is [object Object] of type object … … 30 46 PASS: eventData is gnirts of type object 31 47 PASS: eventData is 42 of type object 48 PASS: eventData is 0 of type object 49 PASS: eventData is -20 of type object 50 PASS: eventData is 4294967295 of type object 51 PASS: eventData is -4294967295 of type object 52 PASS: eventData is 2147483647 of type object 53 PASS: eventData is 2147483648 of type object 54 PASS: eventData is -2147483648 of type object 55 PASS: eventData is -2147483649 of type object 56 PASS: eventData is 68719476735 of type object 57 PASS: eventData is -68719476735 of type object 58 PASS: eventData is 1000000000000000000000000000000000 of type object 59 PASS: eventData is -1000000000000000000000000000000000 of type object 60 PASS: eventData is 1461501637330902918203684832716283019655932542975 of type object 61 PASS: eventData is -1461501637330902918203684832716283019655932542975 of type object 62 PASS: eventData is 4722366482869645213695 of type object 63 PASS: eventData is -4722366482869645213695 of type object 32 64 PASS: eventData is === to eventData.self 33 65 PASS: eventData is === to eventData[0] … … 116 148 PASS: Number object properties not serialized 117 149 PASS: Boolean object properties not serialized 150 PASS: BigInt object properties not serialized 151 PASS: BigInt (BigInt32) object properties not serialized 118 152 PASS: Date values correct (0) 119 153 PASS: Date values correct (1) -
trunk/Source/WebCore/ChangeLog
r260403 r260404 1 2020-04-20 Yusuke Suzuki <ysuzuki@apple.com> 2 3 Add more structure-cloning tests for BigInt 4 https://bugs.webkit.org/show_bug.cgi?id=210765 5 6 Reviewed by Mark Lam. 7 8 This patch adds safe-guard for future JSC primitive extension for structure-cloning. 9 We throw DataCloneError if we see unknown primitive value, which can happen if JSC 10 extends primitive value. 11 12 * bindings/js/SerializedScriptValue.cpp: 13 (WebCore::CloneSerializer::dumpImmediate): 14 (WebCore::CloneSerializer::dumpIfTerminal): 15 1 16 2020-04-20 Simon Fraser <simon.fraser@apple.com> 2 17 -
trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp
r260358 r260404 754 754 } 755 755 756 void dumpImmediate(JSValue value )756 void dumpImmediate(JSValue value, SerializationReturnCode& code) 757 757 { 758 758 if (value.isNull()) { … … 794 794 } 795 795 #endif 796 797 // Make any new primitive extension safe by throwing an error. 798 code = SerializationReturnCode::DataCloneError; 796 799 } 797 800 … … 1062 1065 { 1063 1066 if (!value.isCell()) { 1064 dumpImmediate(value );1067 dumpImmediate(value, code); 1065 1068 return true; 1066 1069 }
Note: See TracChangeset
for help on using the changeset viewer.