[bigint] Encapsulate internals in MutableBigInt
This CL creates the invariant that the BigInt class treats BigInt objects as immutable. Writing to new BigInt objects as part of their construction is done by the MutableBigInt helper class, which in turn is hidden as an implementation detail in bigint.cc. As a side effect, this refactoring enforces right-trimming checks for all newly created BigInts, and ensures that all BigInt allocations possibly exceeding kMaxLength check for this case and throw a RangeError instead of crashing. Bug: v8:6791 Tbr: mlippautz@chromium.org Change-Id: Id239746108e6b076b47a03ba37462001eb501507 Reviewed-on: https://chromium-review.googlesource.com/742329 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#49462}
Showing
Please
register
or
sign in
to comment