• jkummerow's avatar
    Introduce {FAST,SLOW}_STRING_WRAPPER_ELEMENTS · f4872f74
    jkummerow authored
    String wrappers (new String("foo")) are special objects: their string
    characters are accessed like elements, and they also have an elements
    backing store. This used to require a bunch of explicit checks like:
    
    if (obj->IsJSValue() && JSValue::cast(obj)->value()->IsString()) {
      /* Handle string characters */
    }
    // Handle regular elements (for string wrappers and other objects)
    obj->GetElementsAccessor()->Whatever(...);
    
    This CL introduces new ElementsKinds for string wrapper objects (one for
    fast elements, one for dictionary elements), which allow folding the
    special-casing into new StringWrapperElementsAccessors.
    
    No observable change in behavior is intended.
    
    Review URL: https://codereview.chromium.org/1612323003
    
    Cr-Commit-Position: refs/heads/master@{#33616}
    f4872f74
objects.h 399 KB