Ignore:
Timestamp:
Sep 21, 2009, 8:45:13 AM (16 years ago)
Author:
[email protected]
Message:

Re-land SNES fix, with correct assertion

RS=Maciej Stachowiak

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/jit/JITStubs.cpp

    r48580 r48582  
    680680    Structure* structure = baseCell->structure();
    681681
    682     if (structure->isDictionary()) {
     682    if (structure->isUncacheableDictionary()) {
    683683        ctiPatchCallByReturnAddress(codeBlock, returnAddress, FunctionPtr(cti_op_put_by_id_generic));
    684684        return;
     
    744744    Structure* structure = baseCell->structure();
    745745
    746     if (structure->isDictionary()) {
     746    if (structure->isUncacheableDictionary()) {
    747747        ctiPatchCallByReturnAddress(codeBlock, returnAddress, FunctionPtr(cti_op_get_by_id_generic));
    748748        return;
     
    11551155    if (baseValue.isCell()
    11561156        && slot.isCacheable()
    1157         && !(structure = asCell(baseValue)->structure())->isDictionary()
     1157        && !(structure = asCell(baseValue)->structure())->isUncacheableDictionary()
    11581158        && (slotBaseObject = asObject(slot.slotBase()))->getPropertySpecificValue(callFrame, ident, specific)
    11591159        && specific
     
    12291229    if (baseValue.isCell()
    12301230        && slot.isCacheable()
    1231         && !asCell(baseValue)->structure()->isDictionary()
     1231        && !asCell(baseValue)->structure()->isUncacheableDictionary()
    12321232        && slot.slotBase() == baseValue) {
    12331233
     
    13001300    CHECK_FOR_EXCEPTION();
    13011301
    1302     if (!baseValue.isCell() || !slot.isCacheable() || asCell(baseValue)->structure()->isDictionary()) {
     1302    if (!baseValue.isCell() || !slot.isCacheable() || asCell(baseValue)->structure()->isUncacheableDictionary()) {
    13031303        ctiPatchCallByReturnAddress(callFrame->codeBlock(), STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_proto_fail));
    13041304        return JSValue::encode(result);
     
    21892189    if (globalObject->getPropertySlot(callFrame, ident, slot)) {
    21902190        JSValue result = slot.getValue(callFrame, ident);
    2191         if (slot.isCacheable() && !globalObject->structure()->isDictionary() && slot.slotBase() == globalObject) {
     2191        if (slot.isCacheable() && !globalObject->structure()->isUncacheableDictionary() && slot.slotBase() == globalObject) {
    21922192            GlobalResolveInfo& globalResolveInfo = callFrame->codeBlock()->globalResolveInfo(globalResolveInfoIndex);
    21932193            if (globalResolveInfo.structure)
Note: See TracChangeset for help on using the changeset viewer.