| Index: src/compiler/access-builder.cc
 | 
| diff --git a/src/compiler/access-builder.cc b/src/compiler/access-builder.cc
 | 
| index 0eac1097d34a8796b7677336634087d8d4f2ee89..976e051527c1b79a16848c3dc3a4990be170ca9d 100644
 | 
| --- a/src/compiler/access-builder.cc
 | 
| +++ b/src/compiler/access-builder.cc
 | 
| @@ -386,6 +386,78 @@ FieldAccess AccessBuilder::ForStringLength() {
 | 
|    return access;
 | 
|  }
 | 
|  
 | 
| +// static
 | 
| +FieldAccess AccessBuilder::ForConsStringFirst() {
 | 
| +  FieldAccess access = {
 | 
| +      kTaggedBase,    ConsString::kFirstOffset, Handle<Name>(),
 | 
| +      Type::String(), MachineType::AnyTagged(), kPointerWriteBarrier};
 | 
| +  return access;
 | 
| +}
 | 
| +
 | 
| +// static
 | 
| +FieldAccess AccessBuilder::ForConsStringSecond() {
 | 
| +  FieldAccess access = {
 | 
| +      kTaggedBase,    ConsString::kSecondOffset, Handle<Name>(),
 | 
| +      Type::String(), MachineType::AnyTagged(),  kPointerWriteBarrier};
 | 
| +  return access;
 | 
| +}
 | 
| +
 | 
| +// static
 | 
| +FieldAccess AccessBuilder::ForSlicedStringOffset() {
 | 
| +  FieldAccess access = {
 | 
| +      kTaggedBase,         SlicedString::kOffsetOffset, Handle<Name>(),
 | 
| +      Type::SignedSmall(), MachineType::AnyTagged(),    kNoWriteBarrier};
 | 
| +  return access;
 | 
| +}
 | 
| +
 | 
| +// static
 | 
| +FieldAccess AccessBuilder::ForSlicedStringParent() {
 | 
| +  FieldAccess access = {
 | 
| +      kTaggedBase,    SlicedString::kParentOffset, Handle<Name>(),
 | 
| +      Type::String(), MachineType::AnyTagged(),    kPointerWriteBarrier};
 | 
| +  return access;
 | 
| +}
 | 
| +
 | 
| +// static
 | 
| +FieldAccess AccessBuilder::ForExternalStringResourceData() {
 | 
| +  FieldAccess access = {kTaggedBase,
 | 
| +                        ExternalString::kResourceDataOffset,
 | 
| +                        Handle<Name>(),
 | 
| +                        Type::UntaggedPointer(),
 | 
| +                        MachineType::Pointer(),
 | 
| +                        kNoWriteBarrier};
 | 
| +  return access;
 | 
| +}
 | 
| +
 | 
| +// static
 | 
| +ElementAccess AccessBuilder::ForExternalOneByteStringCharacter() {
 | 
| +  ElementAccess access = {kUntaggedBase, 0, TypeCache::Get().kUint8,
 | 
| +                          MachineType::Uint8(), kNoWriteBarrier};
 | 
| +  return access;
 | 
| +}
 | 
| +
 | 
| +// static
 | 
| +ElementAccess AccessBuilder::ForExternalTwoByteStringCharacter() {
 | 
| +  ElementAccess access = {kUntaggedBase, 0, TypeCache::Get().kUint16,
 | 
| +                          MachineType::Uint16(), kNoWriteBarrier};
 | 
| +  return access;
 | 
| +}
 | 
| +
 | 
| +// static
 | 
| +ElementAccess AccessBuilder::ForSeqOneByteStringCharacter() {
 | 
| +  ElementAccess access = {kTaggedBase, SeqOneByteString::kHeaderSize,
 | 
| +                          TypeCache::Get().kUint8, MachineType::Uint8(),
 | 
| +                          kNoWriteBarrier};
 | 
| +  return access;
 | 
| +}
 | 
| +
 | 
| +// static
 | 
| +ElementAccess AccessBuilder::ForSeqTwoByteStringCharacter() {
 | 
| +  ElementAccess access = {kTaggedBase, SeqTwoByteString::kHeaderSize,
 | 
| +                          TypeCache::Get().kUint16, MachineType::Uint16(),
 | 
| +                          kNoWriteBarrier};
 | 
| +  return access;
 | 
| +}
 | 
|  
 | 
|  // static
 | 
|  FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() {
 | 
| @@ -398,7 +470,6 @@ FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() {
 | 
|    return access;
 | 
|  }
 | 
|  
 | 
| -
 | 
|  // static
 | 
|  FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() {
 | 
|    FieldAccess access = {kTaggedBase,
 | 
| 
 |