⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 240224 in webkit


Ignore:
Timestamp:
Jan 20, 2019, 8:37:03 PM (8 years ago)
Author:
sbarati@apple.com
Message:

Rollout r240210: It broke tests on iOS
​https://bugs.webkit.org/show_bug.cgi?id=193640

Source/JavaScriptCore:

Unreviewed. ~2650 tests are failing on iOS.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • builtins/BuiltinNames.cpp:

(JSC::BuiltinNames::BuiltinNames):

  • builtins/BuiltinNames.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setConstantIdentifierSetRegisters):

  • bytecode/CodeBlock.h:
  • bytecode/HandlerInfo.h:
  • bytecode/InstructionStream.h:
  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::addSetConstant):
(JSC::UnlinkedCodeBlock::constantIdentifierSets):

  • bytecode/UnlinkedEvalCodeBlock.h:
  • bytecode/UnlinkedFunctionCodeBlock.h:
  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecode/UnlinkedGlobalCodeBlock.h:

(JSC::UnlinkedGlobalCodeBlock::UnlinkedGlobalCodeBlock):

  • bytecode/UnlinkedMetadataTable.h:
  • bytecode/UnlinkedModuleProgramCodeBlock.h:
  • bytecode/UnlinkedProgramCodeBlock.h:
  • interpreter/Interpreter.cpp:
  • jsc.cpp:

(functionQuit):
(runJSC):

  • parser/SourceCode.h:
  • parser/SourceCodeKey.h:

(JSC::SourceCodeKey::operator!= const): Deleted.

  • parser/UnlinkedSourceCode.h:
  • parser/VariableEnvironment.h:
  • runtime/CachedTypes.cpp:

(): Deleted.
(JSC::Encoder::Allocation::buffer const): Deleted.
(JSC::Encoder::Allocation::offset const): Deleted.
(JSC::Encoder::Allocation::Allocation): Deleted.
(JSC::Encoder::Encoder): Deleted.
(JSC::Encoder::vm): Deleted.
(JSC::Encoder::malloc): Deleted.
(JSC::Encoder::offsetOf): Deleted.
(JSC::Encoder::cachePtr): Deleted.
(JSC::Encoder::offsetForPtr): Deleted.
(JSC::Encoder::release): Deleted.
(JSC::Encoder::Page::Page): Deleted.
(JSC::Encoder::Page::malloc): Deleted.
(JSC::Encoder::Page::buffer const): Deleted.
(JSC::Encoder::Page::size const): Deleted.
(JSC::Encoder::Page::getOffset const): Deleted.
(JSC::Encoder::allocateNewPage): Deleted.
(JSC::Decoder::Decoder): Deleted.
(JSC::Decoder::~Decoder): Deleted.
(JSC::Decoder::vm): Deleted.
(JSC::Decoder::offsetOf): Deleted.
(JSC::Decoder::cacheOffset): Deleted.
(JSC::Decoder::addFinalizer): Deleted.
(JSC::encode): Deleted.
(JSC::decode): Deleted.
(JSC::VariableLengthObject::buffer const): Deleted.
(JSC::VariableLengthObject::allocate): Deleted.
(JSC::CachedPtr::encode): Deleted.
(JSC::CachedPtr::decode const): Deleted.
(JSC::CachedPtr::operator-> const): Deleted.
(JSC::CachedPtr::get const): Deleted.
(JSC::CachedRefPtr::encode): Deleted.
(JSC::CachedRefPtr::decode const): Deleted.
(JSC::CachedWriteBarrier::encode): Deleted.
(JSC::CachedWriteBarrier::decode const): Deleted.
(JSC::CachedVector::encode): Deleted.
(JSC::CachedVector::decode const): Deleted.
(JSC::CachedPair::encode): Deleted.
(JSC::CachedPair::decode const): Deleted.
(JSC::CachedHashMap::encode): Deleted.
(JSC::CachedHashMap::decode const): Deleted.
(JSC::CachedUniquedStringImpl::encode): Deleted.
(JSC::CachedUniquedStringImpl::decode const): Deleted.
(JSC::CachedStringImpl::encode): Deleted.
(JSC::CachedStringImpl::decode const): Deleted.
(JSC::CachedString::encode): Deleted.
(JSC::CachedString::decode const): Deleted.
(JSC::CachedIdentifier::encode): Deleted.
(JSC::CachedIdentifier::decode const): Deleted.
(JSC::CachedOptional::encode): Deleted.
(JSC::CachedOptional::decode const): Deleted.
(JSC::CachedOptional::decodeAsPtr const): Deleted.
(JSC::CachedSimpleJumpTable::encode): Deleted.
(JSC::CachedSimpleJumpTable::decode const): Deleted.
(JSC::CachedStringJumpTable::encode): Deleted.
(JSC::CachedStringJumpTable::decode const): Deleted.
(JSC::CachedCodeBlockRareData::encode): Deleted.
(JSC::CachedCodeBlockRareData::decode const): Deleted.
(JSC::CachedBitVector::encode): Deleted.
(JSC::CachedBitVector::decode const): Deleted.
(JSC::CachedHashSet::encode): Deleted.
(JSC::CachedHashSet::decode const): Deleted.
(JSC::CachedConstantIdentifierSetEntry::encode): Deleted.
(JSC::CachedConstantIdentifierSetEntry::decode const): Deleted.
(JSC::CachedVariableEnvironment::encode): Deleted.
(JSC::CachedVariableEnvironment::decode const): Deleted.
(JSC::CachedArray::encode): Deleted.
(JSC::CachedArray::decode const): Deleted.
(JSC::CachedScopedArgumentsTable::encode): Deleted.
(JSC::CachedScopedArgumentsTable::decode const): Deleted.
(JSC::CachedSymbolTableEntry::encode): Deleted.
(JSC::CachedSymbolTableEntry::decode const): Deleted.
(JSC::CachedSymbolTable::encode): Deleted.
(JSC::CachedSymbolTable::decode const): Deleted.
(JSC::CachedImmutableButterfly::encode): Deleted.
(JSC::CachedImmutableButterfly::decode const): Deleted.
(JSC::CachedRegExp::encode): Deleted.
(JSC::CachedRegExp::decode const): Deleted.
(JSC::CachedTemplateObjectDescriptor::encode): Deleted.
(JSC::CachedTemplateObjectDescriptor::decode const): Deleted.
(JSC::CachedBigInt::encode): Deleted.
(JSC::CachedBigInt::decode const): Deleted.
(JSC::CachedJSValue::encode): Deleted.
(JSC::CachedJSValue::decode const): Deleted.
(JSC::CachedInstructionStream::encode): Deleted.
(JSC::CachedInstructionStream::decode const): Deleted.
(JSC::CachedMetadataTable::encode): Deleted.
(JSC::CachedMetadataTable::decode const): Deleted.
(JSC::CachedSourceOrigin::encode): Deleted.
(JSC::CachedSourceOrigin::decode const): Deleted.
(JSC::CachedTextPosition::encode): Deleted.
(JSC::CachedTextPosition::decode const): Deleted.
(JSC::CachedSourceProviderShape::encode): Deleted.
(JSC::CachedSourceProviderShape::decode const): Deleted.
(JSC::CachedStringSourceProvider::encode): Deleted.
(JSC::CachedStringSourceProvider::decode const): Deleted.
(JSC::CachedWebAssemblySourceProvider::encode): Deleted.
(JSC::CachedWebAssemblySourceProvider::decode const): Deleted.
(JSC::CachedSourceProvider::encode): Deleted.
(JSC::CachedSourceProvider::decode const): Deleted.
(JSC::CachedUnlinkedSourceCodeShape::encode): Deleted.
(JSC::CachedUnlinkedSourceCodeShape::decode const): Deleted.
(JSC::CachedSourceCode::encode): Deleted.
(JSC::CachedSourceCode::decode const): Deleted.
(JSC::CachedFunctionExecutable::firstLineOffset const): Deleted.
(JSC::CachedFunctionExecutable::lineCount const): Deleted.
(JSC::CachedFunctionExecutable::unlinkedFunctionNameStart const): Deleted.
(JSC::CachedFunctionExecutable::unlinkedBodyStartColumn const): Deleted.
(JSC::CachedFunctionExecutable::unlinkedBodyEndColumn const): Deleted.
(JSC::CachedFunctionExecutable::startOffset const): Deleted.
(JSC::CachedFunctionExecutable::sourceLength const): Deleted.
(JSC::CachedFunctionExecutable::parametersStartOffset const): Deleted.
(JSC::CachedFunctionExecutable::typeProfilingStartOffset const): Deleted.
(JSC::CachedFunctionExecutable::typeProfilingEndOffset const): Deleted.
(JSC::CachedFunctionExecutable::parameterCount const): Deleted.
(JSC::CachedFunctionExecutable::features const): Deleted.
(JSC::CachedFunctionExecutable::sourceParseMode const): Deleted.
(JSC::CachedFunctionExecutable::isInStrictContext const): Deleted.
(JSC::CachedFunctionExecutable::hasCapturedVariables const): Deleted.
(JSC::CachedFunctionExecutable::isBuiltinFunction const): Deleted.
(JSC::CachedFunctionExecutable::isBuiltinDefaultClassConstructor const): Deleted.
(JSC::CachedFunctionExecutable::constructAbility const): Deleted.
(JSC::CachedFunctionExecutable::constructorKind const): Deleted.
(JSC::CachedFunctionExecutable::functionMode const): Deleted.
(JSC::CachedFunctionExecutable::scriptMode const): Deleted.
(JSC::CachedFunctionExecutable::superBinding const): Deleted.
(JSC::CachedFunctionExecutable::derivedContextType const): Deleted.
(JSC::CachedFunctionExecutable::name const): Deleted.
(JSC::CachedFunctionExecutable::ecmaName const): Deleted.
(JSC::CachedFunctionExecutable::inferredName const): Deleted.
(JSC::CachedCodeBlock::instructions const): Deleted.
(JSC::CachedCodeBlock::thisRegister const): Deleted.
(JSC::CachedCodeBlock::scopeRegister const): Deleted.
(JSC::CachedCodeBlock::globalObjectRegister const): Deleted.
(JSC::CachedCodeBlock::sourceURLDirective const): Deleted.
(JSC::CachedCodeBlock::sourceMappingURLDirective const): Deleted.
(JSC::CachedCodeBlock::usesEval const): Deleted.
(JSC::CachedCodeBlock::isStrictMode const): Deleted.
(JSC::CachedCodeBlock::isConstructor const): Deleted.
(JSC::CachedCodeBlock::hasCapturedVariables const): Deleted.
(JSC::CachedCodeBlock::isBuiltinFunction const): Deleted.
(JSC::CachedCodeBlock::superBinding const): Deleted.
(JSC::CachedCodeBlock::scriptMode const): Deleted.
(JSC::CachedCodeBlock::isArrowFunctionContext const): Deleted.
(JSC::CachedCodeBlock::isClassContext const): Deleted.
(JSC::CachedCodeBlock::wasCompiledWithDebuggingOpcodes const): Deleted.
(JSC::CachedCodeBlock::constructorKind const): Deleted.
(JSC::CachedCodeBlock::derivedContextType const): Deleted.
(JSC::CachedCodeBlock::evalContextType const): Deleted.
(JSC::CachedCodeBlock::hasTailCalls const): Deleted.
(JSC::CachedCodeBlock::lineCount const): Deleted.
(JSC::CachedCodeBlock::endColumn const): Deleted.
(JSC::CachedCodeBlock::numVars const): Deleted.
(JSC::CachedCodeBlock::numCalleeLocals const): Deleted.
(JSC::CachedCodeBlock::numParameters const): Deleted.
(JSC::CachedCodeBlock::features const): Deleted.
(JSC::CachedCodeBlock::parseMode const): Deleted.
(JSC::CachedCodeBlock::codeType const): Deleted.
(JSC::CachedCodeBlock::rareData const): Deleted.
(JSC::CachedProgramCodeBlock::encode): Deleted.
(JSC::CachedProgramCodeBlock::decode const): Deleted.
(JSC::CachedModuleCodeBlock::encode): Deleted.
(JSC::CachedModuleCodeBlock::decode const): Deleted.
(JSC::CachedEvalCodeBlock::encode): Deleted.
(JSC::CachedEvalCodeBlock::decode const): Deleted.
(JSC::CachedFunctionCodeBlock::encode): Deleted.
(JSC::CachedFunctionCodeBlock::decode const): Deleted.
(JSC::UnlinkedFunctionCodeBlock::UnlinkedFunctionCodeBlock): Deleted.
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): Deleted.
(JSC::CachedCodeBlock<CodeBlockType>::decode const): Deleted.
(JSC::UnlinkedProgramCodeBlock::UnlinkedProgramCodeBlock): Deleted.
(JSC::UnlinkedModuleProgramCodeBlock::UnlinkedModuleProgramCodeBlock): Deleted.
(JSC::UnlinkedEvalCodeBlock::UnlinkedEvalCodeBlock): Deleted.
(JSC::CachedFunctionExecutable::encode): Deleted.
(JSC::CachedFunctionExecutable::decode const): Deleted.
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable): Deleted.
(JSC::CachedCodeBlock<CodeBlockType>::encode): Deleted.
(JSC::CachedSourceCodeKey::encode): Deleted.
(JSC::CachedSourceCodeKey::decode const): Deleted.
(JSC::CacheEntry::encode): Deleted.
(JSC::CacheEntry:: const): Deleted.
(JSC:: const): Deleted.
(JSC::encodeCodeBlock): Deleted.
(JSC::decodeCodeBlockImpl): Deleted.

  • runtime/CachedTypes.h:

(JSC::decodeCodeBlock): Deleted.

  • runtime/CodeCache.cpp:

(JSC::CodeCacheMap::pruneSlowCase):
(JSC::CodeCache::getUnlinkedGlobalCodeBlock):
(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):
(JSC::CodeCache::write): Deleted.

  • runtime/CodeCache.h:

(JSC::CodeCacheMap::findCacheAndUpdateAge):
(JSC::CodeCache::clear):
(JSC::CodeCacheMap::begin): Deleted.
(JSC::CodeCacheMap::end): Deleted.
(JSC::CodeCacheMap::fetchFromDiskImpl): Deleted.
(): Deleted.
(JSC::writeCodeBlock): Deleted.

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::offsetOfData):
(JSC::JSBigInt::dataStorage):

  • runtime/JSBigInt.h:
  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

  • runtime/Options.h:
  • runtime/RegExp.h:
  • runtime/ScopedArgumentsTable.h:
  • runtime/StackFrame.h:
  • runtime/StructureInlines.h:
  • runtime/SymbolTable.h:

Source/WTF:

Unreviewed.

  • wtf/BitVector.h:

Tools:

Unreviewed.

  • Scripts/jsc-stress-test-helpers/bytecode-cache-test-helper:
  • Scripts/run-jsc-stress-tests:
Location:
trunk
Files:
3 deleted
39 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/CMakeLists.txt

    r240210 r240224  
    834834    runtime/JSGlobalObject.h
    835835    runtime/JSGlobalObjectInlines.h
    836     runtime/JSImmutableButterfly.h
    837836    runtime/JSInternalPromise.h
    838837    runtime/JSInternalPromiseDeferred.h
    … …  
    850849    runtime/JSPromiseConstructor.h
    851850    runtime/JSPromiseDeferred.h
    852     runtime/JSPropertyNameEnumerator.h
    853851    runtime/JSProxy.h
    854852    runtime/JSRunLoopTimer.h
  • trunk/Source/JavaScriptCore/ChangeLog

    r240223 r240224  
     12019-01-20  Saam Barati  <sbarati@apple.com>
     2
     3        Rollout r240210: It broke tests on iOS
     4        https://bugs.webkit.org/show_bug.cgi?id=193640
     5
     6        Unreviewed. ~2650 tests are failing on iOS.
     7
     8        * CMakeLists.txt:
     9        * JavaScriptCore.xcodeproj/project.pbxproj:
     10        * Sources.txt:
     11        * builtins/BuiltinNames.cpp:
     12        (JSC::BuiltinNames::BuiltinNames):
     13        * builtins/BuiltinNames.h:
     14        * bytecode/CodeBlock.cpp:
     15        (JSC::CodeBlock::setConstantIdentifierSetRegisters):
     16        * bytecode/CodeBlock.h:
     17        * bytecode/HandlerInfo.h:
     18        * bytecode/InstructionStream.h:
     19        * bytecode/UnlinkedCodeBlock.h:
     20        (JSC::UnlinkedCodeBlock::addSetConstant):
     21        (JSC::UnlinkedCodeBlock::constantIdentifierSets):
     22        * bytecode/UnlinkedEvalCodeBlock.h:
     23        * bytecode/UnlinkedFunctionCodeBlock.h:
     24        * bytecode/UnlinkedFunctionExecutable.h:
     25        * bytecode/UnlinkedGlobalCodeBlock.h:
     26        (JSC::UnlinkedGlobalCodeBlock::UnlinkedGlobalCodeBlock):
     27        * bytecode/UnlinkedMetadataTable.h:
     28        * bytecode/UnlinkedModuleProgramCodeBlock.h:
     29        * bytecode/UnlinkedProgramCodeBlock.h:
     30        * interpreter/Interpreter.cpp:
     31        * jsc.cpp:
     32        (functionQuit):
     33        (runJSC):
     34        * parser/SourceCode.h:
     35        * parser/SourceCodeKey.h:
     36        (JSC::SourceCodeKey::operator!= const): Deleted.
     37        * parser/UnlinkedSourceCode.h:
     38        * parser/VariableEnvironment.h:
     39        * runtime/CachedTypes.cpp:
     40        (): Deleted.
     41        (JSC::Encoder::Allocation::buffer const): Deleted.
     42        (JSC::Encoder::Allocation::offset const): Deleted.
     43        (JSC::Encoder::Allocation::Allocation): Deleted.
     44        (JSC::Encoder::Encoder): Deleted.
     45        (JSC::Encoder::vm): Deleted.
     46        (JSC::Encoder::malloc): Deleted.
     47        (JSC::Encoder::offsetOf): Deleted.
     48        (JSC::Encoder::cachePtr): Deleted.
     49        (JSC::Encoder::offsetForPtr): Deleted.
     50        (JSC::Encoder::release): Deleted.
     51        (JSC::Encoder::Page::Page): Deleted.
     52        (JSC::Encoder::Page::malloc): Deleted.
     53        (JSC::Encoder::Page::buffer const): Deleted.
     54        (JSC::Encoder::Page::size const): Deleted.
     55        (JSC::Encoder::Page::getOffset const): Deleted.
     56        (JSC::Encoder::allocateNewPage): Deleted.
     57        (JSC::Decoder::Decoder): Deleted.
     58        (JSC::Decoder::~Decoder): Deleted.
     59        (JSC::Decoder::vm): Deleted.
     60        (JSC::Decoder::offsetOf): Deleted.
     61        (JSC::Decoder::cacheOffset): Deleted.
     62        (JSC::Decoder::addFinalizer): Deleted.
     63        (JSC::encode): Deleted.
     64        (JSC::decode): Deleted.
     65        (JSC::VariableLengthObject::buffer const): Deleted.
     66        (JSC::VariableLengthObject::allocate): Deleted.
     67        (JSC::CachedPtr::encode): Deleted.
     68        (JSC::CachedPtr::decode const): Deleted.
     69        (JSC::CachedPtr::operator-> const): Deleted.
     70        (JSC::CachedPtr::get const): Deleted.
     71        (JSC::CachedRefPtr::encode): Deleted.
     72        (JSC::CachedRefPtr::decode const): Deleted.
     73        (JSC::CachedWriteBarrier::encode): Deleted.
     74        (JSC::CachedWriteBarrier::decode const): Deleted.
     75        (JSC::CachedVector::encode): Deleted.
     76        (JSC::CachedVector::decode const): Deleted.
     77        (JSC::CachedPair::encode): Deleted.
     78        (JSC::CachedPair::decode const): Deleted.
     79        (JSC::CachedHashMap::encode): Deleted.
     80        (JSC::CachedHashMap::decode const): Deleted.
     81        (JSC::CachedUniquedStringImpl::encode): Deleted.
     82        (JSC::CachedUniquedStringImpl::decode const): Deleted.
     83        (JSC::CachedStringImpl::encode): Deleted.
     84        (JSC::CachedStringImpl::decode const): Deleted.
     85        (JSC::CachedString::encode): Deleted.
     86        (JSC::CachedString::decode const): Deleted.
     87        (JSC::CachedIdentifier::encode): Deleted.
     88        (JSC::CachedIdentifier::decode const): Deleted.
     89        (JSC::CachedOptional::encode): Deleted.
     90        (JSC::CachedOptional::decode const): Deleted.
     91        (JSC::CachedOptional::decodeAsPtr const): Deleted.
     92        (JSC::CachedSimpleJumpTable::encode): Deleted.
     93        (JSC::CachedSimpleJumpTable::decode const): Deleted.
     94        (JSC::CachedStringJumpTable::encode): Deleted.
     95        (JSC::CachedStringJumpTable::decode const): Deleted.
     96        (JSC::CachedCodeBlockRareData::encode): Deleted.
     97        (JSC::CachedCodeBlockRareData::decode const): Deleted.
     98        (JSC::CachedBitVector::encode): Deleted.
     99        (JSC::CachedBitVector::decode const): Deleted.
     100        (JSC::CachedHashSet::encode): Deleted.
     101        (JSC::CachedHashSet::decode const): Deleted.
     102        (JSC::CachedConstantIdentifierSetEntry::encode): Deleted.
     103        (JSC::CachedConstantIdentifierSetEntry::decode const): Deleted.
     104        (JSC::CachedVariableEnvironment::encode): Deleted.
     105        (JSC::CachedVariableEnvironment::decode const): Deleted.
     106        (JSC::CachedArray::encode): Deleted.
     107        (JSC::CachedArray::decode const): Deleted.
     108        (JSC::CachedScopedArgumentsTable::encode): Deleted.
     109        (JSC::CachedScopedArgumentsTable::decode const): Deleted.
     110        (JSC::CachedSymbolTableEntry::encode): Deleted.
     111        (JSC::CachedSymbolTableEntry::decode const): Deleted.
     112        (JSC::CachedSymbolTable::encode): Deleted.
     113        (JSC::CachedSymbolTable::decode const): Deleted.
     114        (JSC::CachedImmutableButterfly::encode): Deleted.
     115        (JSC::CachedImmutableButterfly::decode const): Deleted.
     116        (JSC::CachedRegExp::encode): Deleted.
     117        (JSC::CachedRegExp::decode const): Deleted.
     118        (JSC::CachedTemplateObjectDescriptor::encode): Deleted.
     119        (JSC::CachedTemplateObjectDescriptor::decode const): Deleted.
     120        (JSC::CachedBigInt::encode): Deleted.
     121        (JSC::CachedBigInt::decode const): Deleted.
     122        (JSC::CachedJSValue::encode): Deleted.
     123        (JSC::CachedJSValue::decode const): Deleted.
     124        (JSC::CachedInstructionStream::encode): Deleted.
     125        (JSC::CachedInstructionStream::decode const): Deleted.
     126        (JSC::CachedMetadataTable::encode): Deleted.
     127        (JSC::CachedMetadataTable::decode const): Deleted.
     128        (JSC::CachedSourceOrigin::encode): Deleted.
     129        (JSC::CachedSourceOrigin::decode const): Deleted.
     130        (JSC::CachedTextPosition::encode): Deleted.
     131        (JSC::CachedTextPosition::decode const): Deleted.
     132        (JSC::CachedSourceProviderShape::encode): Deleted.
     133        (JSC::CachedSourceProviderShape::decode const): Deleted.
     134        (JSC::CachedStringSourceProvider::encode): Deleted.
     135        (JSC::CachedStringSourceProvider::decode const): Deleted.
     136        (JSC::CachedWebAssemblySourceProvider::encode): Deleted.
     137        (JSC::CachedWebAssemblySourceProvider::decode const): Deleted.
     138        (JSC::CachedSourceProvider::encode): Deleted.
     139        (JSC::CachedSourceProvider::decode const): Deleted.
     140        (JSC::CachedUnlinkedSourceCodeShape::encode): Deleted.
     141        (JSC::CachedUnlinkedSourceCodeShape::decode const): Deleted.
     142        (JSC::CachedSourceCode::encode): Deleted.
     143        (JSC::CachedSourceCode::decode const): Deleted.
     144        (JSC::CachedFunctionExecutable::firstLineOffset const): Deleted.
     145        (JSC::CachedFunctionExecutable::lineCount const): Deleted.
     146        (JSC::CachedFunctionExecutable::unlinkedFunctionNameStart const): Deleted.
     147        (JSC::CachedFunctionExecutable::unlinkedBodyStartColumn const): Deleted.
     148        (JSC::CachedFunctionExecutable::unlinkedBodyEndColumn const): Deleted.
     149        (JSC::CachedFunctionExecutable::startOffset const): Deleted.
     150        (JSC::CachedFunctionExecutable::sourceLength const): Deleted.
     151        (JSC::CachedFunctionExecutable::parametersStartOffset const): Deleted.
     152        (JSC::CachedFunctionExecutable::typeProfilingStartOffset const): Deleted.
     153        (JSC::CachedFunctionExecutable::typeProfilingEndOffset const): Deleted.
     154        (JSC::CachedFunctionExecutable::parameterCount const): Deleted.
     155        (JSC::CachedFunctionExecutable::features const): Deleted.
     156        (JSC::CachedFunctionExecutable::sourceParseMode const): Deleted.
     157        (JSC::CachedFunctionExecutable::isInStrictContext const): Deleted.
     158        (JSC::CachedFunctionExecutable::hasCapturedVariables const): Deleted.
     159        (JSC::CachedFunctionExecutable::isBuiltinFunction const): Deleted.
     160        (JSC::CachedFunctionExecutable::isBuiltinDefaultClassConstructor const): Deleted.
     161        (JSC::CachedFunctionExecutable::constructAbility const): Deleted.
     162        (JSC::CachedFunctionExecutable::constructorKind const): Deleted.
     163        (JSC::CachedFunctionExecutable::functionMode const): Deleted.
     164        (JSC::CachedFunctionExecutable::scriptMode const): Deleted.
     165        (JSC::CachedFunctionExecutable::superBinding const): Deleted.
     166        (JSC::CachedFunctionExecutable::derivedContextType const): Deleted.
     167        (JSC::CachedFunctionExecutable::name const): Deleted.
     168        (JSC::CachedFunctionExecutable::ecmaName const): Deleted.
     169        (JSC::CachedFunctionExecutable::inferredName const): Deleted.
     170        (JSC::CachedCodeBlock::instructions const): Deleted.
     171        (JSC::CachedCodeBlock::thisRegister const): Deleted.
     172        (JSC::CachedCodeBlock::scopeRegister const): Deleted.
     173        (JSC::CachedCodeBlock::globalObjectRegister const): Deleted.
     174        (JSC::CachedCodeBlock::sourceURLDirective const): Deleted.
     175        (JSC::CachedCodeBlock::sourceMappingURLDirective const): Deleted.
     176        (JSC::CachedCodeBlock::usesEval const): Deleted.
     177        (JSC::CachedCodeBlock::isStrictMode const): Deleted.
     178        (JSC::CachedCodeBlock::isConstructor const): Deleted.
     179        (JSC::CachedCodeBlock::hasCapturedVariables const): Deleted.
     180        (JSC::CachedCodeBlock::isBuiltinFunction const): Deleted.
     181        (JSC::CachedCodeBlock::superBinding const): Deleted.
     182        (JSC::CachedCodeBlock::scriptMode const): Deleted.
     183        (JSC::CachedCodeBlock::isArrowFunctionContext const): Deleted.
     184        (JSC::CachedCodeBlock::isClassContext const): Deleted.
     185        (JSC::CachedCodeBlock::wasCompiledWithDebuggingOpcodes const): Deleted.
     186        (JSC::CachedCodeBlock::constructorKind const): Deleted.
     187        (JSC::CachedCodeBlock::derivedContextType const): Deleted.
     188        (JSC::CachedCodeBlock::evalContextType const): Deleted.
     189        (JSC::CachedCodeBlock::hasTailCalls const): Deleted.
     190        (JSC::CachedCodeBlock::lineCount const): Deleted.
     191        (JSC::CachedCodeBlock::endColumn const): Deleted.
     192        (JSC::CachedCodeBlock::numVars const): Deleted.
     193        (JSC::CachedCodeBlock::numCalleeLocals const): Deleted.
     194        (JSC::CachedCodeBlock::numParameters const): Deleted.
     195        (JSC::CachedCodeBlock::features const): Deleted.
     196        (JSC::CachedCodeBlock::parseMode const): Deleted.
     197        (JSC::CachedCodeBlock::codeType const): Deleted.
     198        (JSC::CachedCodeBlock::rareData const): Deleted.
     199        (JSC::CachedProgramCodeBlock::encode): Deleted.
     200        (JSC::CachedProgramCodeBlock::decode const): Deleted.
     201        (JSC::CachedModuleCodeBlock::encode): Deleted.
     202        (JSC::CachedModuleCodeBlock::decode const): Deleted.
     203        (JSC::CachedEvalCodeBlock::encode): Deleted.
     204        (JSC::CachedEvalCodeBlock::decode const): Deleted.
     205        (JSC::CachedFunctionCodeBlock::encode): Deleted.
     206        (JSC::CachedFunctionCodeBlock::decode const): Deleted.
     207        (JSC::UnlinkedFunctionCodeBlock::UnlinkedFunctionCodeBlock): Deleted.
     208        (JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): Deleted.
     209        (JSC::CachedCodeBlock<CodeBlockType>::decode const): Deleted.
     210        (JSC::UnlinkedProgramCodeBlock::UnlinkedProgramCodeBlock): Deleted.
     211        (JSC::UnlinkedModuleProgramCodeBlock::UnlinkedModuleProgramCodeBlock): Deleted.
     212        (JSC::UnlinkedEvalCodeBlock::UnlinkedEvalCodeBlock): Deleted.
     213        (JSC::CachedFunctionExecutable::encode): Deleted.
     214        (JSC::CachedFunctionExecutable::decode const): Deleted.
     215        (JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable): Deleted.
     216        (JSC::CachedCodeBlock<CodeBlockType>::encode): Deleted.
     217        (JSC::CachedSourceCodeKey::encode): Deleted.
     218        (JSC::CachedSourceCodeKey::decode const): Deleted.
     219        (JSC::CacheEntry::encode): Deleted.
     220        (JSC::CacheEntry:: const): Deleted.
     221        (JSC:: const): Deleted.
     222        (JSC::encodeCodeBlock): Deleted.
     223        (JSC::decodeCodeBlockImpl): Deleted.
     224        * runtime/CachedTypes.h:
     225        (JSC::decodeCodeBlock): Deleted.
     226        * runtime/CodeCache.cpp:
     227        (JSC::CodeCacheMap::pruneSlowCase):
     228        (JSC::CodeCache::getUnlinkedGlobalCodeBlock):
     229        (JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):
     230        (JSC::CodeCache::write): Deleted.
     231        * runtime/CodeCache.h:
     232        (JSC::CodeCacheMap::findCacheAndUpdateAge):
     233        (JSC::CodeCache::clear):
     234        (JSC::CodeCacheMap::begin): Deleted.
     235        (JSC::CodeCacheMap::end): Deleted.
     236        (JSC::CodeCacheMap::fetchFromDiskImpl): Deleted.
     237        (): Deleted.
     238        (JSC::writeCodeBlock): Deleted.
     239        * runtime/JSBigInt.cpp:
     240        (JSC::JSBigInt::offsetOfData):
     241        (JSC::JSBigInt::dataStorage):
     242        * runtime/JSBigInt.h:
     243        * runtime/Options.cpp:
     244        (JSC::recomputeDependentOptions):
     245        * runtime/Options.h:
     246        * runtime/RegExp.h:
     247        * runtime/ScopedArgumentsTable.h:
     248        * runtime/StackFrame.h:
     249        * runtime/StructureInlines.h:
     250        * runtime/SymbolTable.h:
     251
    12522019-01-20  Saam Barati  <sbarati@apple.com>
    2253
  • trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

    r240210 r240224  
    827827                2684D4381C00161C0081D663 /* AirLiveness.h in Headers */ = {isa = PBXBuildFile; fileRef = 2684D4371C00161C0081D663 /* AirLiveness.h */; };
    828828                269D636E1BFBE5D100101B1D /* FTLOutput.h in Headers */ = {isa = PBXBuildFile; fileRef = 269D636D1BFBE5D000101B1D /* FTLOutput.h */; };
    829                 2A05ABD61961DF2400341750 /* JSPropertyNameEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A05ABD41961DF2400341750 /* JSPropertyNameEnumerator.h */; settings = {ATTRIBUTES = (Private, ); }; };
     829                2A05ABD61961DF2400341750 /* JSPropertyNameEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A05ABD41961DF2400341750 /* JSPropertyNameEnumerator.h */; };
    830830                2A111246192FCE79005EE18D /* CustomGetterSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A111244192FCE79005EE18D /* CustomGetterSetter.h */; settings = {ATTRIBUTES = (Private, ); }; };
    831831                2A48D1911772365B00C65A5F /* APICallbackFunction.h in Headers */ = {isa = PBXBuildFile; fileRef = C211B574176A224D000E2A23 /* APICallbackFunction.h */; };
    … …  
    10631063                53EE01B6218F691600AD1F8D /* JSScript.h in Headers */ = {isa = PBXBuildFile; fileRef = 53EE01B5218F690F00AD1F8D /* JSScript.h */; settings = {ATTRIBUTES = (Private, ); }; };
    10641064                53EE01B8218F7EFF00AD1F8D /* JSScriptInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 53EE01B7218F7EFF00AD1F8D /* JSScriptInternal.h */; };
    1065                 53F11F41209138D700E411A7 /* JSImmutableButterfly.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F11F40209138D700E411A7 /* JSImmutableButterfly.h */; settings = {ATTRIBUTES = (Private, ); }; };
     1065                53F11F41209138D700E411A7 /* JSImmutableButterfly.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F11F40209138D700E411A7 /* JSImmutableButterfly.h */; };
    10661066                53F40E851D58F9770099A1B6 /* WasmSections.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F40E841D58F9770099A1B6 /* WasmSections.h */; };
    10671067                53F40E8B1D5901BB0099A1B6 /* WasmFunctionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F40E8A1D5901BB0099A1B6 /* WasmFunctionParser.h */; };
    … …  
    31293129                14386A761DD6989C008652C4 /* IndirectEvalExecutable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IndirectEvalExecutable.cpp; sourceTree = "<group>"; };
    31303130                14386A771DD6989C008652C4 /* IndirectEvalExecutable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IndirectEvalExecutable.h; sourceTree = "<group>"; };
    3131                 143BE26521C857770020CD17 /* CachedTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedTypes.h; sourceTree = "<group>"; };
    31323131                1440051F0A531D3B0005F061 /* Node.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Node.h; path = tests/Node.h; sourceTree = "<group>"; };
    31333132                144005200A531D3B0005F061 /* Node.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Node.c; path = tests/Node.c; sourceTree = "<group>"; };
    … …  
    32443243                14DA818E0D99FD2000B0A4FB /* JSLexicalEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSLexicalEnvironment.h; sourceTree = "<group>"; };
    32453244                14DA818F0D99FD2000B0A4FB /* JSLexicalEnvironment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSLexicalEnvironment.cpp; sourceTree = "<group>"; };
    3246                 14DAFA4521E3B871004B68F7 /* CachedTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CachedTypes.cpp; sourceTree = "<group>"; };
    32473245                14DE0D680D02431400AACCA2 /* JSGlobalObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = JSGlobalObject.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
    32483246                14DF04D916B3996D0016A513 /* StaticPropertyAnalysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StaticPropertyAnalysis.h; sourceTree = "<group>"; };
    … …  
    66036601                                0FB7F38B15ED8E3800F167B2 /* Butterfly.h */,
    66046602                                0FB7F38C15ED8E3800F167B2 /* ButterflyInlines.h */,
    6605                                 14DAFA4521E3B871004B68F7 /* CachedTypes.cpp */,
    6606                                 143BE26521C857770020CD17 /* CachedTypes.h */,
    66076603                                0FEC3C5F1F379F5300F59B6C /* CagedBarrierPtr.h */,
    66086604                                BCA62DFE0E2826230004F30D /* CallData.cpp */,
  • trunk/Source/JavaScriptCore/Sources.txt

    r240210 r240224  
    714714runtime/BooleanPrototype.cpp
    715715runtime/CallData.cpp
    716 runtime/CachedTypes.cpp
    717716runtime/CatchScope.cpp
    718717runtime/ClassInfo.cpp
  • trunk/Source/JavaScriptCore/builtins/BuiltinNames.cpp

    r240210 r240224  
    6464    JSC_FOREACH_BUILTIN_FUNCTION_NAME(INITIALIZE_PUBLIC_TO_PRIVATE_ENTRY)
    6565    JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(INITIALIZE_PUBLIC_TO_PRIVATE_ENTRY)
    66     JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_WELL_KNOWN_SYMBOL(INITIALIZE_SYMBOL_PRIVATE_TO_PUBLIC_ENTRY)
    6766    JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_WELL_KNOWN_SYMBOL(INITIALIZE_SYMBOL_PUBLIC_TO_PRIVATE_ENTRY)
    6867    m_privateToPublicMap.add(m_dollarVMPrivateName.impl(), &m_dollarVMName);
  • trunk/Source/JavaScriptCore/builtins/BuiltinNames.h

    r240210 r240224  
    214214// e.g. @iteratorSymbol points to Symbol.iterator in this map rather than to a an actual private name.
    215215// FIXME: This is a weird hack and we shouldn't need to do this.
    216 #define INITIALIZE_SYMBOL_PRIVATE_TO_PUBLIC_ENTRY(name) m_privateToPublicMap.add(m_##name##Symbol.impl(), &m_##name##SymbolPrivateIdentifier);
    217216#define INITIALIZE_SYMBOL_PUBLIC_TO_PRIVATE_ENTRY(name) m_publicToPrivateMap.add(m_##name##SymbolPrivateIdentifier.impl(), &m_##name##Symbol);
    218217
  • trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp

    r240220 r240224  
    870870}
    871871
    872 void CodeBlock::setConstantIdentifierSetRegisters(VM& vm, const Vector<ConstantIdentifierSetEntry>& constants)
     872void CodeBlock::setConstantIdentifierSetRegisters(VM& vm, const Vector<ConstantIndentifierSetEntry>& constants)
    873873{
    874874    auto scope = DECLARE_THROW_SCOPE(vm);
  • trunk/Source/JavaScriptCore/bytecode/CodeBlock.h

    r240220 r240224  
    891891    void updateAllPredictionsAndCountLiveness(unsigned& numberOfLiveNonArgumentValueProfiles, unsigned& numberOfSamplesInProfiles);
    892892
    893     void setConstantIdentifierSetRegisters(VM&, const Vector<ConstantIdentifierSetEntry>& constants);
     893    void setConstantIdentifierSetRegisters(VM&, const Vector<ConstantIndentifierSetEntry>& constants);
    894894
    895895    void setConstantRegisters(const Vector<WriteBarrier<Unknown>>& constants, const Vector<SourceCodeRepresentation>& constantsSourceCodeRepresentation);
  • trunk/Source/JavaScriptCore/bytecode/HandlerInfo.h

    r240210 r240224  
    9090
    9191struct UnlinkedHandlerInfo : public HandlerInfoBase {
    92     UnlinkedHandlerInfo()
    93     {
    94     }
    95 
    9692    UnlinkedHandlerInfo(uint32_t start, uint32_t end, uint32_t target, HandlerType handlerType)
    9793    {
  • trunk/Source/JavaScriptCore/bytecode/InstructionStream.h

    r240210 r240224  
    4040
    4141    friend class InstructionStreamWriter;
    42     friend class CachedInstructionStream;
    4342public:
    4443    size_t sizeInBytes() const;
  • trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h

    r240210 r240224  
    6666struct ExecutableInfo;
    6767
    68 template<typename CodeBlockType>
    69 class CachedCodeBlock;
    70 
    7168typedef unsigned UnlinkedValueProfile;
    7269typedef unsigned UnlinkedArrayProfile;
    … …  
    7471typedef unsigned UnlinkedObjectAllocationProfile;
    7572typedef unsigned UnlinkedLLIntCallLinkInfo;
    76 using ConstantIdentifierSetEntry = std::pair<IdentifierSet, unsigned>;
     73using ConstantIndentifierSetEntry = std::pair<IdentifierSet, unsigned>;
    7774
    7875struct UnlinkedStringJumpTable {
    … …  
    172169        m_constantRegisters.append(WriteBarrier<Unknown>());
    173170        m_constantsSourceCodeRepresentation.append(SourceCodeRepresentation::Other);
    174         m_constantIdentifierSets.append(ConstantIdentifierSetEntry(set, result));
     171        m_constantIdentifierSets.append(ConstantIndentifierSetEntry(set, result));
    175172    }
    176173
    … …  
    206203    }
    207204    const Vector<WriteBarrier<Unknown>>& constantRegisters() { return m_constantRegisters; }
    208     const Vector<ConstantIdentifierSetEntry>& constantIdentifierSets() { return m_constantIdentifierSets; }
     205    const Vector<ConstantIndentifierSetEntry>& constantIdentifierSets() { return m_constantIdentifierSets; }
    209206    const WriteBarrier<Unknown>& constantRegister(int index) const { return m_constantRegisters[index - FirstConstantRegisterIndex]; }
    210207    ALWAYS_INLINE bool isConstantRegisterIndex(int index) const { return index >= FirstConstantRegisterIndex; }
    … …  
    371368protected:
    372369    UnlinkedCodeBlock(VM*, Structure*, CodeType, const ExecutableInfo&, DebuggerMode);
    373 
    374     template<typename CodeBlockType>
    375     UnlinkedCodeBlock(Decoder&, Structure*, const CachedCodeBlock<CodeBlockType>&);
    376 
    377370    ~UnlinkedCodeBlock();
    378371
    … …  
    385378    friend class BytecodeRewriter;
    386379    friend class BytecodeGenerator;
    387 
    388     template<typename CodeBlockType>
    389     friend class CachedCodeBlock;
    390380
    391381    void applyModification(BytecodeRewriter&, InstructionStreamWriter&);
    … …  
    455445    Vector<BitVector> m_bitVectors;
    456446    Vector<WriteBarrier<Unknown>> m_constantRegisters;
    457     Vector<ConstantIdentifierSetEntry> m_constantIdentifierSets;
     447    Vector<ConstantIndentifierSetEntry> m_constantIdentifierSets;
    458448    Vector<SourceCodeRepresentation> m_constantsSourceCodeRepresentation;
    459449    typedef Vector<WriteBarrier<UnlinkedFunctionExecutable>> FunctionExpressionVector;
  • trunk/Source/JavaScriptCore/bytecode/UnlinkedEvalCodeBlock.h

    r240210 r240224  
    3030namespace JSC {
    3131
    32 class CachedEvalCodeBlock;
    33 
    3432class UnlinkedEvalCodeBlock final : public UnlinkedGlobalCodeBlock {
    3533public:
    … …  
    6260    }
    6361private:
    64     friend CachedEvalCodeBlock;
    65 
    6662    UnlinkedEvalCodeBlock(VM* vm, Structure* structure, const ExecutableInfo& info, DebuggerMode debuggerMode)
    6763        : Base(vm, structure, EvalCode, info, debuggerMode)
    6864    {
    6965    }
    70 
    71     UnlinkedEvalCodeBlock(Decoder&, const CachedEvalCodeBlock&);
    7266
    7367    Vector<Identifier, 0, UnsafeVectorOverflow> m_variables;
  • trunk/Source/JavaScriptCore/bytecode/UnlinkedFunctionCodeBlock.h

    r240210 r240224  
    3030namespace JSC {
    3131
    32 class CachedFunctionCodeBlock;
    33 
    3432class UnlinkedFunctionCodeBlock final : public UnlinkedCodeBlock {
    3533public:
    … …  
    4745
    4846private:
    49     friend CachedFunctionCodeBlock;
    50 
    5147    UnlinkedFunctionCodeBlock(VM* vm, Structure* structure, CodeType codeType, const ExecutableInfo& info, DebuggerMode debuggerMode)
    5248        : Base(vm, structure, codeType, info, debuggerMode)
    5349    {
    5450    }
    55 
    56     UnlinkedFunctionCodeBlock(Decoder&, const CachedFunctionCodeBlock&);
    5751   
    5852public:
  • trunk/Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.h

    r240210 r240224  
    4040namespace JSC {
    4141
    42 class Decoder;
    4342class FunctionMetadataNode;
    4443class FunctionExecutable;
    … …  
    4645class SourceProvider;
    4746class UnlinkedFunctionCodeBlock;
    48 class CachedFunctionExecutable;
    4947
    5048enum UnlinkedFunctionKind {
    … …  
    5755    friend class CodeCache;
    5856    friend class VM;
    59     friend CachedFunctionExecutable;
    6057
    6158    typedef JSCell Base;
    … …  
    151148private:
    152149    UnlinkedFunctionExecutable(VM*, Structure*, const SourceCode&, FunctionMetadataNode*, UnlinkedFunctionKind, ConstructAbility, JSParserScriptMode, VariableEnvironment&,  JSC::DerivedContextType, bool isBuiltinDefaultClassConstructor);
    153     UnlinkedFunctionExecutable(Decoder&, VariableEnvironment&, const CachedFunctionExecutable&);
    154150
    155151    unsigned m_firstLineOffset;
  • trunk/Source/JavaScriptCore/bytecode/UnlinkedGlobalCodeBlock.h

    r240210 r240224  
    3939    {
    4040    }
    41 
    42     template<typename CodeBlockType>
    43     UnlinkedGlobalCodeBlock(Decoder& decoder, Structure* structure, const CachedCodeBlock<CodeBlockType>& cachedCodeBlock)
    44         : Base(decoder, structure, cachedCodeBlock)
    45     {
    46     }
    4741};
    4842
  • trunk/Source/JavaScriptCore/bytecode/UnlinkedMetadataTable.h

    r240210 r240224  
    3636    friend class LLIntOffsetsExtractor;
    3737    friend class MetadataTable;
    38     friend class CachedMetadataTable;
    3938
    4039public:
  • trunk/Source/JavaScriptCore/bytecode/UnlinkedModuleProgramCodeBlock.h

    r240210 r240224  
    2929
    3030namespace JSC {
    31 
    32 class Decoder;
    33 class CachedModuleCodeBlock;
    3431
    3532class UnlinkedModuleProgramCodeBlock final : public UnlinkedGlobalCodeBlock {
    … …  
    7875
    7976private:
    80     friend CachedModuleCodeBlock;
    81 
    8277    UnlinkedModuleProgramCodeBlock(VM* vm, Structure* structure, const ExecutableInfo& info, DebuggerMode debuggerMode)
    8378        : Base(vm, structure, ModuleCode, info, debuggerMode)
    8479    {
    8580    }
    86 
    87     UnlinkedModuleProgramCodeBlock(Decoder&, const CachedModuleCodeBlock&);
    8881
    8982    int m_moduleEnvironmentSymbolTableConstantRegisterOffset { 0 };
  • trunk/Source/JavaScriptCore/bytecode/UnlinkedProgramCodeBlock.h

    r240210 r240224  
    3030namespace JSC {
    3131
    32 class CachedProgramCodeBlock;
    33 
    3432class UnlinkedProgramCodeBlock final : public UnlinkedGlobalCodeBlock {
    3533public:
    … …  
    5351
    5452private:
    55     friend CachedProgramCodeBlock;
    56 
    5753    UnlinkedProgramCodeBlock(VM* vm, Structure* structure, const ExecutableInfo& info, DebuggerMode debuggerMode)
    5854        : Base(vm, structure, GlobalCode, info, debuggerMode)
    5955    {
    6056    }
    61 
    62     UnlinkedProgramCodeBlock(Decoder&, const CachedProgramCodeBlock&);
    6357
    6458    VariableEnvironment m_varDeclarations;
  • trunk/Source/JavaScriptCore/interpreter/Interpreter.cpp

    r240210 r240224  
    3636#include "CatchScope.h"
    3737#include "CodeBlock.h"
    38 #include "CodeCache.h"
    3938#include "DirectArguments.h"
    4039#include "Heap.h"
  • trunk/Source/JavaScriptCore/jsc.cpp

    r240210 r240224  
    2929#include "CatchScope.h"
    3030#include "CodeBlock.h"
    31 #include "CodeCache.h"
    3231#include "Completion.h"
    3332#include "ConfigFile.h"
    … …  
    19901989}
    19911990
    1992 EncodedJSValue JSC_HOST_CALL functionQuit(ExecState* exec)
    1993 {
    1994     VM& vm = exec->vm();
    1995     vm.codeCache()->write(vm);
    1996 
     1991EncodedJSValue JSC_HOST_CALL functionQuit(ExecState*)
     1992{
    19971993    jscExit(EXIT_SUCCESS);
    19981994
    … …  
    28812877    }
    28822878
    2883     vm.codeCache()->write(vm);
    2884 
    28852879    if (isWorker) {
    28862880        JSLockHolder locker(vm);
  • trunk/Source/JavaScriptCore/parser/SourceCode.h

    r240210 r240224  
    3434
    3535    class SourceCode : public UnlinkedSourceCode {
    36         friend class CachedSourceCode;
    37 
    3836    public:
    3937        SourceCode()
  • trunk/Source/JavaScriptCore/parser/SourceCodeKey.h

    r240210 r240224  
    3838
    3939class SourceCodeFlags {
    40     friend class CachedSourceCodeKey;
    41 
    4240public:
    4341    SourceCodeFlags() = default;
    … …  
    7371
    7472class SourceCodeKey {
    75     friend class CachedSourceCodeKey;
    76 
    7773public:
    7874    SourceCodeKey()
    … …  
    119115    }
    120116
    121     bool operator!=(const SourceCodeKey& other) const
    122     {
    123         return !(*this == other);
    124     }
    125 
    126117    struct Hash {
    127118        static unsigned hash(const SourceCodeKey& key) { return key.hash(); }
  • trunk/Source/JavaScriptCore/parser/UnlinkedSourceCode.h

    r240210 r240224  
    3636
    3737    class UnlinkedSourceCode {
    38         template<typename SourceType>
    39         friend class CachedUnlinkedSourceCodeShape;
    40 
    4138    public:
    4239        UnlinkedSourceCode()
  • trunk/Source/JavaScriptCore/parser/VariableEnvironment.h

    r240210 r240224  
    117117
    118118private:
    119     friend class CachedVariableEnvironment;
    120 
    121119    Map m_map;
    122120    bool m_isEverythingCaptured { false };
  • trunk/Source/JavaScriptCore/runtime/CodeCache.cpp

    r240210 r240224  
    4444    while (m_size > m_capacity || !canPruneQuickly()) {
    4545        MapType::iterator it = m_map.begin();
    46 
    47         writeCodeBlock(*it->value.cell->vm(), it->key, it->value);
    48 
    4946        m_size -= it->key.length();
    5047        m_map.remove(it);
    … …  
    6360        vm.controlFlowProfiler() ? ControlFlowProfilerEnabled::Yes : ControlFlowProfilerEnabled::No,
    6461        WTF::nullopt);
    65     UnlinkedCodeBlockType* unlinkedCodeBlock = m_sourceCode.findCacheAndUpdateAge<UnlinkedCodeBlockType>(vm, key);
    66     if (unlinkedCodeBlock && Options::useCodeCache()) {
     62    SourceCodeValue* cache = m_sourceCode.findCacheAndUpdateAge(key);
     63    if (cache && Options::useCodeCache()) {
     64        UnlinkedCodeBlockType* unlinkedCodeBlock = jsCast<UnlinkedCodeBlockType*>(cache->cell.get());
    6765        unsigned lineCount = unlinkedCodeBlock->lineCount();
    6866        unsigned startColumn = unlinkedCodeBlock->startColumn() + source.startColumn().oneBasedInt();
    … …  
    7472        return unlinkedCodeBlock;
    7573    }
    76 
     74   
    7775    VariableEnvironment variablesUnderTDZ;
    78     unlinkedCodeBlock = generateUnlinkedCodeBlock<UnlinkedCodeBlockType, ExecutableType>(vm, executable, source, strictMode, scriptMode, debuggerMode, error, evalContextType, &variablesUnderTDZ);
     76    UnlinkedCodeBlockType* unlinkedCodeBlock = generateUnlinkedCodeBlock<UnlinkedCodeBlockType, ExecutableType>(vm, executable, source, strictMode, scriptMode, debuggerMode, error, evalContextType, &variablesUnderTDZ);
    7977
    8078    if (unlinkedCodeBlock && Options::useCodeCache())
    … …  
    113111        vm.controlFlowProfiler() ? ControlFlowProfilerEnabled::Yes : ControlFlowProfilerEnabled::No,
    114112        functionConstructorParametersEndPosition);
    115     UnlinkedFunctionExecutable* executable = m_sourceCode.findCacheAndUpdateAge<UnlinkedFunctionExecutable>(vm, key);
    116     if (executable && Options::useCodeCache()) {
     113    SourceCodeValue* cache = m_sourceCode.findCacheAndUpdateAge(key);
     114    if (cache && Options::useCodeCache()) {
     115        UnlinkedFunctionExecutable* executable = jsCast<UnlinkedFunctionExecutable*>(cache->cell.get());
    117116        source.provider()->setSourceURLDirective(executable->sourceURLDirective());
    118117        source.provider()->setSourceMappingURLDirective(executable->sourceMappingURLDirective());
    … …  
    157156}
    158157
    159 void CodeCache::write(VM& vm)
    160 {
    161     for (const auto& it : m_sourceCode)
    162         writeCodeBlock(vm, it.key, it.value);
    163158}
    164 
    165 }
  • trunk/Source/JavaScriptCore/runtime/CodeCache.h

    r240210 r240224  
    2727
    2828#include "BytecodeGenerator.h"
    29 #include "CachedTypes.h"
    3029#include "ExecutableInfo.h"
    3130#include "JSCInlines.h"
    … …  
    3938#include "UnlinkedModuleProgramCodeBlock.h"
    4039#include "UnlinkedProgramCodeBlock.h"
    41 #include <sys/stat.h>
    4240#include <wtf/Forward.h>
    4341#include <wtf/text/WTFString.h>
    … …  
    9290    }
    9391
    94     iterator begin() { return m_map.begin(); }
    95     iterator end() { return m_map.end(); }
    96 
    97     template<typename UnlinkedCodeBlockType>
    98     UnlinkedCodeBlockType* fetchFromDiskImpl(VM& vm, const SourceCodeKey& key)
    99     {
    100 #if OS(DARWIN)
    101         const char* cachePath = Options::diskCachePath();
    102         if (!cachePath)
    103             return nullptr;
    104 
    105         unsigned hash = key.hash();
    106         char filename[512];
    107         int count = snprintf(filename, 512, "%s/%u.cache", cachePath, hash);
    108         if (count < 0 || count > 512)
    109             return nullptr;
    110 
    111         int fd = open(filename, O_RDONLY);
    112         if (fd == -1)
    113             return nullptr;
    114 
    115         int rc = flock(fd, LOCK_SH | LOCK_NB);
    116         if (rc) {
    117             close(fd);
    118             return nullptr;
    119         }
    120 
    121         struct stat sb;
    122         int res = fstat(fd, &sb);
    123         size_t size = static_cast<size_t>(sb.st_size);
    124         if (res || !size)
    125             return nullptr;
    126 
    127         const void* buffer = mmap(nullptr, size, PROT_READ, MAP_PRIVATE, fd, 0);
    128         UnlinkedCodeBlockType* unlinkedCodeBlock = decodeCodeBlock<UnlinkedCodeBlockType>(vm, key, buffer, size);
    129 
    130         if (!unlinkedCodeBlock)
    131             return nullptr;
    132 
    133         addCache(key, SourceCodeValue(vm, unlinkedCodeBlock, m_age));
    134         return unlinkedCodeBlock;
    135 #else
    136         UNUSED_PARAM(vm);
    137         UNUSED_PARAM(key);
    138         return nullptr;
    139 #endif
    140     }
    141 
    142     template<typename UnlinkedCodeBlockType>
    143     std::enable_if_t<std::is_base_of<UnlinkedCodeBlock, UnlinkedCodeBlockType>::value && !std::is_same<UnlinkedCodeBlockType, UnlinkedEvalCodeBlock>::value, UnlinkedCodeBlockType*>
    144     fetchFromDisk(VM& vm, const SourceCodeKey& key)
    145     {
    146         UnlinkedCodeBlockType* codeBlock = fetchFromDiskImpl<UnlinkedCodeBlockType>(vm, key);
    147         if (UNLIKELY(Options::forceDiskCache()))
    148             RELEASE_ASSERT(codeBlock);
    149         return codeBlock;
    150     }
    151 
    152     template<typename T>
    153     std::enable_if_t<!std::is_base_of<UnlinkedCodeBlock, T>::value || std::is_same<T, UnlinkedEvalCodeBlock>::value, T*>
    154     fetchFromDisk(VM&, const SourceCodeKey&) { return nullptr; }
    155 
    156     template<typename UnlinkedCodeBlockType>
    157     UnlinkedCodeBlockType* findCacheAndUpdateAge(VM& vm, const SourceCodeKey& key)
     92    SourceCodeValue* findCacheAndUpdateAge(const SourceCodeKey& key)
    15893    {
    15994        prune();
    … …  
    16196        iterator findResult = m_map.find(key);
    16297        if (findResult == m_map.end())
    163             return fetchFromDisk<UnlinkedCodeBlockType>(vm, key);
     98            return nullptr;
    16499
    165100        int64_t age = m_age - findResult->value.age;
    … …  
    181116        m_age += key.length();
    182117
    183         return jsCast<UnlinkedCodeBlockType*>(findResult->value.cell.get());
     118        return &findResult->value;
    184119    }
    185120
    … …  
    263198
    264199    void clear() { m_sourceCode.clear(); }
    265     JS_EXPORT_PRIVATE void write(VM&);
    266200
    267201private:
    … …  
    323257}
    324258
    325 ALWAYS_INLINE static void writeCodeBlock(VM& vm, const SourceCodeKey& key, const SourceCodeValue& value)
    326 {
    327 #if OS(DARWIN)
    328     const char* cachePath = Options::diskCachePath();
    329     if (LIKELY(!cachePath))
    330         return;
    331 
    332     UnlinkedCodeBlock* codeBlock = jsDynamicCast<UnlinkedCodeBlock*>(vm, value.cell.get());
    333     if (!codeBlock)
    334         return;
    335 
    336     unsigned hash = key.hash();
    337     char filename[512];
    338     int count = snprintf(filename, 512, "%s/%u.cache", cachePath, hash);
    339     if (count < 0 || count > 512)
    340         return;
    341 
    342     std::pair<MallocPtr<uint8_t>, size_t> result = encodeCodeBlock(vm, key, codeBlock);
    343 
    344     int fd = open(filename, O_CREAT | O_WRONLY, 0666);
    345     int rc = flock(fd, LOCK_EX | LOCK_NB);
    346     if (!rc)
    347         ::write(fd, result.first.get(), result.second);
    348     close(fd);
    349 #else
    350     UNUSED_PARAM(vm);
    351     UNUSED_PARAM(key);
    352     UNUSED_PARAM(value);
    353 #endif
    354 }
    355 
    356 
    357259} // namespace JSC
  • trunk/Source/JavaScriptCore/runtime/JSBigInt.cpp

    r240210 r240224  
    16891689}
    16901690
     1691inline size_t JSBigInt::offsetOfData()
     1692{
     1693    return WTF::roundUpToMultipleOf<sizeof(Digit)>(sizeof(JSBigInt));
     1694}
     1695
    16911696template <typename CharType>
    16921697JSBigInt* JSBigInt::parseInt(ExecState* exec, CharType*  data, unsigned length, ErrorParseMode errorParseMode)
    … …  
    17891794
    17901795    return nullptr;
     1796}
     1797
     1798inline JSBigInt::Digit* JSBigInt::dataStorage()
     1799{
     1800    return reinterpret_cast<Digit*>(reinterpret_cast<char*>(this) + offsetOfData());
    17911801}
    17921802
  • trunk/Source/JavaScriptCore/runtime/JSBigInt.h

    r240210 r240224  
    3939    using Base = JSCell;
    4040    static const unsigned StructureFlags = Base::StructureFlags | StructureIsImmortal | OverridesToThis;
    41     friend class CachedBigInt;
    4241
    4342public:
    … …  
    230229
    231230    static size_t allocationSize(unsigned length);
    232     inline static size_t offsetOfData()
    233     {
    234         return WTF::roundUpToMultipleOf<sizeof(Digit)>(sizeof(JSBigInt));
    235     }
    236 
    237     inline Digit* dataStorage()
    238     {
    239         return reinterpret_cast<Digit*>(reinterpret_cast<char*>(this) + offsetOfData());
    240     }
     231    static size_t offsetOfData();
     232    Digit* dataStorage();
    241233
    242234    Digit digit(unsigned);
  • trunk/Source/JavaScriptCore/runtime/Options.cpp

    r240220 r240224  
    525525    Options::useProbeOSRExit() = false;
    526526#endif
    527 
    528     if (!Options::useCodeCache())
    529         Options::diskCachePath() = nullptr;
    530 
    531     if (!Options::diskCachePath())
    532         Options::forceDiskCache() = false;
    533527}
    534528
  • trunk/Source/JavaScriptCore/runtime/Options.h

    r240220 r240224  
    509509    v(bool, traceLLIntSlowPath, false, Configurable, nullptr) \
    510510    v(bool, traceBaselineJITExecution, false, Normal, nullptr) \
    511     v(optionString, diskCachePath, nullptr, Restricted, "") \
    512     v(bool, forceDiskCache, false, Restricted, "") \
    513511    v(unsigned, thresholdForGlobalLexicalBindingEpoch, UINT_MAX, Normal, "Threshold for global lexical binding epoch. If the epoch reaches to this value, CodeBlock metadata for scope operations will be revised globally. It needs to be greater than 1.") \
    514512
  • trunk/Source/JavaScriptCore/runtime/RegExp.h

    r240210 r240224  
    4242
    4343class RegExp final : public JSCell {
    44     friend class CachedRegExp;
    45 
    4644public:
    4745    typedef JSCell Base;
  • trunk/Source/JavaScriptCore/runtime/ScopedArgumentsTable.h

    r240210 r240224  
    4040// "delete arguments[i]" or some variant of defineOwnProperty.
    4141class ScopedArgumentsTable final : public JSCell {
    42     friend class CachedScopedArgumentsTable;
    43 
    4442public:
    4543    typedef JSCell Base;
  • trunk/Source/JavaScriptCore/runtime/StackFrame.h

    r240210 r240224  
    2626#pragma once
    2727
    28 #include "Heap.h"
    2928#include "WasmIndexOrName.h"
    3029#include "WriteBarrier.h"
  • trunk/Source/JavaScriptCore/runtime/StructureInlines.h

    r240210 r240224  
    3232#include "Structure.h"
    3333#include "StructureChain.h"
    34 #include "StructureRareDataInlines.h"
    3534
    3635namespace JSC {
  • trunk/Source/JavaScriptCore/runtime/SymbolTable.h

    r240210 r240224  
    7474
    7575struct SymbolTableEntry {
    76     friend class CachedSymbolTableEntry;
    77 
    7876private:
    7977    static VarOffset varOffsetFromBits(intptr_t bits)
    … …  
    439437
    440438class SymbolTable final : public JSCell {
    441     friend class CachedSymbolTable;
    442 
    443439public:
    444440    typedef JSCell Base;
  • trunk/Source/WTF/ChangeLog

    r240210 r240224  
     12019-01-20  Saam Barati  <sbarati@apple.com>
     2
     3        Rollout r240210: It broke tests on iOS
     4        https://bugs.webkit.org/show_bug.cgi?id=193640
     5
     6        Unreviewed.
     7
     8        * wtf/BitVector.h:
     9
    1102019-01-20  Tadeu Zagallo  <tzagallo@apple.com>
    211
  • trunk/Source/WTF/wtf/BitVector.h

    r240210 r240224  
    3434#include <wtf/StdLibExtras.h>
    3535
    36 namespace JSC {
    37 class CachedBitVector;
    38 }
    39 
    4036namespace WTF {
    4137
    … …  
    343339       
    344340private:
    345     friend class JSC::CachedBitVector;
    346 
    347341    static unsigned bitsInPointer()
    348342    {
  • trunk/Tools/ChangeLog

    r240219 r240224  
     12019-01-20  Saam Barati  <sbarati@apple.com>
     2
     3        Rollout r240210: It broke tests on iOS
     4        https://bugs.webkit.org/show_bug.cgi?id=193640
     5
     6        Unreviewed.
     7
     8        * Scripts/jsc-stress-test-helpers/bytecode-cache-test-helper:
     9        * Scripts/run-jsc-stress-tests:
     10
    1112019-01-20  chris fleizach  <cfleizach@apple.com>
    212
  • trunk/Tools/Scripts/run-jsc-stress-tests

    r240210 r240224  
    656656end
    657657
    658 def runBytecodeCache(*optionalTestSpecificOptions)
    659     unless $hostOS == "darwin"
    660         skip
    661         return
    662     end
    663     options = BASE_OPTIONS + $testSpecificRequiredOptions + FTL_OPTIONS + optionalTestSpecificOptions
    664     addRunCommand("bytecode-cache", ["ruby", (pathToHelpers + "bytecode-cache-test-helper").to_s, pathToVM.to_s, $benchmark.to_s] + options, silentOutputHandler, simpleErrorHandler)
    665 end
    666 
    667658def runBigIntEnabled(*optionalTestSpecificOptions)
    668659    # FIXME: <rdar://problem/40331121>
    … …  
    761752    else
    762753        runDefault
    763         runBytecodeCache
    764754        if $jitTests
    765755            runNoLLInt
Note: See TracChangeset for help on using the changeset viewer.