LGTM for architecture-independent parts.
Waiting for an updated generated code with better handling of kNotASlice
(as we
discussed by IM).
http://codereview.chromium.org/7477045/diff/43002/src/jsregexp.cc
File src/jsregexp.cc (right):
http://codereview.chromium.org/7477045/diff/43002/src/jsregexp.cc#newcode240
src/jsregexp.cc:240: String* needle =
String::cast(re->DataAt(JSRegExp::kAtomPatternIndex));
We don't call needle->IsAsciiRepresentationUnderneath() because it's
guaranteed to be sequential, right? If yes, add an assert here.
http://codereview.chromium.org/7477045/diff/43002/src/objects-inl.h
File src/objects-inl.h (right):
http://codereview.chromium.org/7477045/diff/43002/src/objects-inl.h#newcode278
src/objects-inl.h:278: STATIC_ASSERT(kIsIndirectStringMask !=
kStringEncodingMask);
Maybe (kIsIndirectStringMask & kStringEncodingMask) == 0?
http://codereview.chromium.org/7477045/diff/43002/src/objects-inl.h#newcode294
src/objects-inl.h:294: STATIC_ASSERT(kIsIndirectStringMask !=
kStringEncodingMask);
Ditto.
http://codereview.chromium.org/7477045/diff/43002/src/objects.cc
File src/objects.cc (right):
http://codereview.chromium.org/7477045/diff/43002/src/objects.cc#newcode5239
src/objects.cc:5239: // Either the string is sequential of external, in
which case the encoding
of -> or
http://codereview.chromium.org/7477045/diff/43002/src/objects.cc#newcode5277
src/objects.cc:5277: // Either the string is sequential of external, in
which case the encoding
of -> or
http://codereview.chromium.org/7477045/diff/43002/src/objects.h
File src/objects.h (right):
http://codereview.chromium.org/7477045/diff/43002/src/objects.h#newcode5784
src/objects.h:5784: // encoding of the underlying string. This is taken
into account here.
Add "Requires: this->IsFlat()".
http://codereview.chromium.org/7477045/diff/43002/src/objects.h#newcode5825
src/objects.h:5825: // Returns the parent of a sliced string or first
part of a cons string.
"... of a *flat* cons ..."
http://codereview.chromium.org/7477045/diff/43002/src/objects.h#newcode5826
src/objects.h:5826: inline String* GetUnderlying();
Add "Requires: StringShape(this).IsIndirect() && this->IsFlat()".
http://codereview.chromium.org/7477045/diff/43002/src/objects.h#newcode6080
src/objects.h:6080: MUST_USE_RESULT MaybeObject*
SlowTryTruncate(PretenureFlag pretenure);
Remove?
http://codereview.chromium.org/7477045/
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev