tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

saved-stack.js (1698B)


      1 // The following binary data was created with:
      2 // JS_STRUCTURED_CLONE_VERSION = 8
      3 //
      4 // ```
      5 // function f() {
      6 //  return saveStack();
      7 // }
      8 // function g() {
      9 //  return f();
     10 // }
     11 //
     12 // let stack = g();
     13 // print(valueToSource(serialize(stack, undefined, {scope: "DifferentProcess"}).clonebuffer))
     14 // ```
     15 
     16 function checkStack(stack) {
     17    print(stack.toString());
     18 
     19    assertEq(stack.functionDisplayName, "f");
     20    assertEq(stack.parent.functionDisplayName, "g");
     21    assertEq(stack.parent.parent.functionDisplayName, null);
     22    assertEq(stack.parent.parent.parent, null);
     23 }
     24 
     25 var clonebuffer = serialize("dummy");
     26 clonebuffer.clonebuffer = "\x02\x00\x00\x00\x00\x00\xF1\xFF\x18\x00\xFF\xFF\x16\x00\xFF\xFF \x00\x00\x80\x04\x00\xFF\xFF/home/tom/Desktop/saved-stack.js\x11\x00\x00\x00\x03\x00\xFF\xFF\t\x00\x00\x00\x03\x00\xFF\xFF\x01\x00\x00\x80\x04\x00\xFF\xFFf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\x18\x00\xFF\xFF\x16\x00\xFF\xFF \x00\x00\x80\x04\x00\xFF\xFF/home/tom/Desktop/saved-stack.js\x14\x00\x00\x00\x03\x00\xFF\xFF\t\x00\x00\x00\x03\x00\xFF\xFF\x01\x00\x00\x80\x04\x00\xFF\xFFg\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\x18\x00\xFF\xFF\x16\x00\xFF\xFF \x00\x00\x80\x04\x00\xFF\xFF/home/tom/Desktop/saved-stack.js\x17\x00\x00\x00\x03\x00\xFF\xFF\r\x00\x00\x00\x03\x00\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00\x00\x00\x13\x00\xFF\xFF\x00\x00\x00\x00\x13\x00\xFF\xFF\x00\x00\x00\x00\x13\x00\xFF\xFF";
     27 var stack = deserialize(clonebuffer);
     28 checkStack(stack);
     29 
     30 function f() {
     31 return saveStack();
     32 }
     33 function g() {
     34 return f();
     35 }
     36 stack = deserialize(serialize(g()));
     37 checkStack(stack);