Serializer: support all alignment kinds.
We use an alignment prefix for unusual alignment kinds (not kWordAligned). This will cause new objects to be aligned in ReadObject, and back references to be aligned to skip padding. The motivation to change the undefined next sentinel in WeakCell is this: When the deserializer aligns an object, it requires filler maps to already exist to create filler objects as padding. However, deserializing the filler map leads to deserializing NaN, which as heap number is aligned: filler map > meta map > weak cell cache > undefined > NaN If we use the-hole instead of undefined as sentinel, it works. R=jochen@chromium.org,bbudge@chromium.org BUG=v8:4178 LOG=N Committed: https://crrev.com/2146ab75387d47eef6582bd8c2d0cfc6c42b68b6 Cr-Commit-Position: refs/heads/master@{#29044} Review URL: https://codereview.chromium.org/1179873003 Cr-Commit-Position: refs/heads/master@{#29047}
Showing
This diff is collapsed.
Please
register
or
sign in
to comment