Changeset 262478 in webkit
- Timestamp:
- Jun 2, 2020, 11:25:50 PM (5 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 2 deleted
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/CMakeLists.txt
r262475 r262478 565 565 dfg/DFGCommon.h 566 566 dfg/DFGCompilationMode.h 567 dfg/DFGDoesGCCheck.h568 567 dfg/DFGMinifiedID.h 569 568 -
trunk/Source/JavaScriptCore/ChangeLog
r262475 r262478 1 2020-06-02 Mark Lam <mark.lam@apple.com> 2 3 Rolling out r262475 to unbreak Windows bot. 4 https://bugs.webkit.org/show_bug.cgi?id=212680 5 6 Not reviewed. 7 8 * CMakeLists.txt: 9 * JavaScriptCore.xcodeproj/project.pbxproj: 10 * Sources.txt: 11 * assembler/MacroAssemblerARM64.h: 12 * assembler/MacroAssemblerX86_64.h: 13 * assembler/testmasm.cpp: 14 (JSC::testCountTrailingZeros64WithoutNullCheck): 15 (JSC::run): 16 (JSC::testStore64Imm64AddressPointer): Deleted. 17 * dfg/DFGDoesGCCheck.cpp: Removed. 18 * dfg/DFGDoesGCCheck.h: Removed. 19 * dfg/DFGGraph.cpp: 20 * dfg/DFGOSRExit.cpp: 21 (JSC::DFG::operationCompileOSRExit): 22 (JSC::DFG::OSRExit::compileExit): 23 * dfg/DFGSpeculativeJIT64.cpp: 24 (JSC::DFG::SpeculativeJIT::compile): 25 * ftl/FTLLowerDFGToB3.cpp: 26 (JSC::FTL::DFG::LowerDFGToB3::compileNode): 27 * ftl/FTLOSRExitCompiler.cpp: 28 (JSC::FTL::compileStub): 29 (JSC::FTL::operationCompileFTLOSRExit): 30 * heap/CompleteSubspace.cpp: 31 (JSC::CompleteSubspace::tryAllocateSlow): 32 (JSC::CompleteSubspace::reallocatePreciseAllocationNonVirtual): 33 * heap/CompleteSubspaceInlines.h: 34 (JSC::CompleteSubspace::allocateNonVirtual): 35 * heap/DeferGC.h: 36 (JSC::DeferGC::~DeferGC): 37 * heap/GCDeferralContextInlines.h: 38 (JSC::GCDeferralContext::~GCDeferralContext): 39 * heap/Heap.cpp: 40 (JSC::Heap::collectNow): 41 (JSC::Heap::collectAsync): 42 (JSC::Heap::collectSync): 43 (JSC::Heap::stopIfNecessarySlow): 44 (JSC::Heap::collectIfNecessaryOrDefer): 45 * heap/Heap.h: 46 (JSC::Heap::expectDoesGC const): 47 (JSC::Heap::setExpectDoesGC): 48 (JSC::Heap::addressOfExpectDoesGC): 49 (JSC::Heap::addressOfDoesGC): Deleted. 50 (JSC::Heap::setDoesGCExpectation): Deleted. 51 (JSC::Heap::verifyCanGC): Deleted. 52 * heap/HeapInlines.h: 53 (JSC::Heap::acquireAccess): 54 (JSC::Heap::stopIfNecessary): 55 * heap/LocalAllocatorInlines.h: 56 (JSC::LocalAllocator::allocate): 57 * heap/PreciseAllocation.cpp: 58 (JSC::PreciseAllocation::tryCreate): 59 (JSC::PreciseAllocation::createForLowerTier): 60 * runtime/JSString.h: 61 (JSC::jsSingleCharacterString): 62 (JSC::JSString::toAtomString const): 63 (JSC::JSString::toExistingAtomString const): 64 (JSC::JSString::value const): 65 (JSC::JSString::tryGetValue const): 66 (JSC::JSRopeString::unsafeView const): 67 (JSC::JSRopeString::viewWithUnderlyingString const): 68 (JSC::JSString::unsafeView const): 69 * runtime/RegExpMatchesArray.h: 70 (JSC::createRegExpMatchesArray): 71 1 72 2020-06-02 Mark Lam <mark.lam@apple.com> 2 73 -
trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
r262475 r262478 1937 1937 FEB58C15187B8B160098EF0B /* ErrorHandlingScope.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB58C13187B8B160098EF0B /* ErrorHandlingScope.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1938 1938 FEC160322339E9F900A04CB8 /* CellSize.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC160312339E9F900A04CB8 /* CellSize.h */; }; 1939 FEC3A3A1248735CA00395B54 /* DFGDoesGCCheck.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC3A3A0248735BC00395B54 /* DFGDoesGCCheck.h */; settings = {ATTRIBUTES = (Private, ); }; };1940 1939 FEC5797323105B5100BCA83F /* VMInspectorInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC5797223105B4800BCA83F /* VMInspectorInlines.h */; }; 1941 1940 FEC5797623105F4E00BCA83F /* Integrity.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC5797523105F4300BCA83F /* Integrity.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 5234 5233 FEB58C13187B8B160098EF0B /* ErrorHandlingScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ErrorHandlingScope.h; sourceTree = "<group>"; }; 5235 5234 FEC160312339E9F900A04CB8 /* CellSize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CellSize.h; sourceTree = "<group>"; }; 5236 FEC3A39F248735BC00395B54 /* DFGDoesGCCheck.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DFGDoesGCCheck.cpp; path = dfg/DFGDoesGCCheck.cpp; sourceTree = "<group>"; };5237 FEC3A3A0248735BC00395B54 /* DFGDoesGCCheck.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DFGDoesGCCheck.h; path = dfg/DFGDoesGCCheck.h; sourceTree = "<group>"; };5238 5235 FEC5797223105B4800BCA83F /* VMInspectorInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VMInspectorInlines.h; sourceTree = "<group>"; }; 5239 5236 FEC5797423105F4200BCA83F /* Integrity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Integrity.cpp; sourceTree = "<group>"; }; … … 7900 7897 0F5A1271192D9FDF008764A3 /* DFGDoesGC.cpp */, 7901 7898 0F5A1272192D9FDF008764A3 /* DFGDoesGC.h */, 7902 FEC3A39F248735BC00395B54 /* DFGDoesGCCheck.cpp */,7903 FEC3A3A0248735BC00395B54 /* DFGDoesGCCheck.h */,7904 7899 0FD81AD0154FB4EB00983E72 /* DFGDominators.h */, 7905 7900 0F1E3A441534CBAD000F9456 /* DFGDoubleFormatState.h */, … … 10202 10197 0FE050281AA9095600D33B33 /* ScopedArguments.h in Headers */, 10203 10198 0FE050291AA9095600D33B33 /* ScopedArgumentsTable.h in Headers */, 10204 FEC3A3A1248735CA00395B54 /* DFGDoesGCCheck.h in Headers */,10205 10199 0FE0502B1AA9095600D33B33 /* ScopeOffset.h in Headers */, 10206 10200 0F24E55217EE274900ABB217 /* ScratchRegisterAllocator.h in Headers */, -
trunk/Source/JavaScriptCore/Sources.txt
r262475 r262478 348 348 dfg/DFGDisassembler.cpp 349 349 dfg/DFGDoesGC.cpp 350 dfg/DFGDoesGCCheck.cpp351 350 dfg/DFGDriver.cpp 352 351 dfg/DFGEdge.cpp -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
r262475 r262478 1460 1460 } 1461 1461 1462 void store64(TrustedImm64 imm, const void* address)1463 {1464 if (!imm.m_value) {1465 store64(ARM64Registers::zr, address);1466 return;1467 }1468 1469 moveToCachedReg(imm, dataMemoryTempRegister());1470 store64(dataTempRegister, address);1471 }1472 1473 1462 void store64(TrustedImm32 imm, ImplicitAddress address) 1474 1463 { -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
r262475 r262478 978 978 } 979 979 980 void store64(TrustedImm64 imm, void* address)981 {982 if (CAN_SIGN_EXTEND_32_64(imm.m_value)) {983 auto addressReg = scratchRegister();984 move(TrustedImmPtr(address), addressReg);985 store64(TrustedImm32(static_cast<int32_t>(imm.m_value)), addressReg);986 return;987 }988 989 auto src = scratchRegister();990 move(imm, src);991 swap(src, X86Registers::eax);992 m_assembler.movq_EAXm(address);993 swap(src, X86Registers::eax);994 }995 996 980 void store64(TrustedImm64 imm, ImplicitAddress address) 997 981 { -
trunk/Source/JavaScriptCore/assembler/testmasm.cpp
r262475 r262478 659 659 testCountTrailingZeros64Impl(wordCanBeZero); 660 660 } 661 662 void testStore64Imm64AddressPointer()663 {664 auto doTest = [] (int64_t value) {665 int64_t dest;666 void* destAddress = &dest;667 668 auto test = compile([=] (CCallHelpers& jit) {669 emitFunctionPrologue(jit);670 jit.store64(CCallHelpers::TrustedImm64(value), destAddress);671 emitFunctionEpilogue(jit);672 jit.ret();673 });674 675 invoke<size_t>(test);676 CHECK_EQ(dest, value);677 };678 679 for (auto value : int64Operands())680 doTest(value);681 682 doTest(0x98765555AAAA4321);683 doTest(0xAAAA432198765555);684 }685 686 661 #endif // CPU(X86_64) || CPU(ARM64) 687 662 … … 2525 2500 RUN(testCountTrailingZeros64()); 2526 2501 RUN(testCountTrailingZeros64WithoutNullCheck()); 2527 RUN(testStore64Imm64AddressPointer());2528 2502 #endif 2529 2503 -
trunk/Source/JavaScriptCore/dfg/DFGGraph.cpp
r262475 r262478 63 63 64 64 // Creates an array of stringized names. 65 const char* dfgOpNames[] = {65 static const char* dfgOpNames[] = { 66 66 #define STRINGIZE_DFG_OP_ENUM(opcode, flags) #opcode , 67 67 FOR_EACH_DFG_OP(STRINGIZE_DFG_OP_ENUM) -
trunk/Source/JavaScriptCore/dfg/DFGOSRExit.cpp
r262475 r262478 147 147 // We're about to exit optimized code. So, there's no longer any optimized 148 148 // code running that expects no GC. 149 vm.heap.set DoesGCExpectation(true, DoesGCCheck::Special::DFGOSRExit);149 vm.heap.setExpectDoesGC(true); 150 150 } 151 151 … … 556 556 // materialization below (see emitRestoreArguments()). 557 557 558 // Even though we set Heap::m_ doesGC in compileOSRExit(), we also need558 // Even though we set Heap::m_expectDoesGC in compileOSRExit(), we also need 559 559 // to set it here because compileOSRExit() is only called on the first time 560 560 // we exit from this site, but all subsequent exits will take this compiled 561 561 // ramp without calling compileOSRExit() first. 562 jit.store 64(CCallHelpers::TrustedImm64(DoesGCCheck::encode(true, DoesGCCheck::Special::DFGOSRExit)), vm.heap.addressOfDoesGC());562 jit.store8(CCallHelpers::TrustedImm32(true), vm.heap.addressOfExpectDoesGC()); 563 563 } 564 564 -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
r262475 r262478 2139 2139 if (validateDFGDoesGC) { 2140 2140 bool expectDoesGC = doesGC(m_jit.graph(), node); 2141 m_jit.store 64(TrustedImm64(DoesGCCheck::encode(expectDoesGC, node->index(), node->op())), vm().heap.addressOfDoesGC());2141 m_jit.store8(TrustedImm32(expectDoesGC), vm().heap.addressOfExpectDoesGC()); 2142 2142 } 2143 2143 -
trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
r262475 r262478 705 705 if (validateDFGDoesGC) { 706 706 bool expectDoesGC = doesGC(m_graph, m_node); 707 m_out.store(m_out.const Int64(DoesGCCheck::encode(expectDoesGC, m_node->index(), m_node->op())), m_out.absolute(vm().heap.addressOfDoesGC()));707 m_out.store(m_out.constBool(expectDoesGC), m_out.absolute(vm().heap.addressOfExpectDoesGC())); 708 708 } 709 709 -
trunk/Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp
r262475 r262478 212 212 // materialization below. 213 213 214 // Even though we set Heap::m_ doesGC in compileFTLOSRExit(), we also need214 // Even though we set Heap::m_expectDoesGC in compileFTLOSRExit(), we also need 215 215 // to set it here because compileFTLOSRExit() is only called on the first time 216 216 // we exit from this site, but all subsequent exits will take this compiled 217 217 // ramp without calling compileFTLOSRExit() first. 218 jit.store 64(CCallHelpers::TrustedImm64(DoesGCCheck::encode(true, DoesGCCheck::Special::FTLOSRExit)), vm.heap.addressOfDoesGC());218 jit.store8(CCallHelpers::TrustedImm32(true), vm.heap.addressOfExpectDoesGC()); 219 219 } 220 220 … … 549 549 // We're about to exit optimized code. So, there's no longer any optimized 550 550 // code running that expects no GC. 551 vm.heap.set DoesGCExpectation(true, DoesGCCheck::Special::FTLOSRExit);551 vm.heap.setExpectDoesGC(true); 552 552 } 553 553 -
trunk/Source/JavaScriptCore/heap/CompleteSubspace.cpp
r262475 r262478 1 1 /* 2 * Copyright (C) 2017-20 20Apple Inc. All rights reserved.2 * Copyright (C) 2017-2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 121 121 { 122 122 if (validateDFGDoesGC) 123 vm.heap.verifyCanGC();123 RELEASE_ASSERT(vm.heap.expectDoesGC()); 124 124 125 125 sanitizeStackForVM(vm); … … 157 157 { 158 158 if (validateDFGDoesGC) 159 vm.heap.verifyCanGC();159 RELEASE_ASSERT(vm.heap.expectDoesGC()); 160 160 161 161 // The following conditions are met in Butterfly for example. -
trunk/Source/JavaScriptCore/heap/CompleteSubspaceInlines.h
r262475 r262478 1 1 /* 2 * Copyright (C) 2018-20 20Apple Inc. All rights reserved.2 * Copyright (C) 2018-2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 34 34 { 35 35 if (validateDFGDoesGC) 36 vm.heap.verifyCanGC();36 RELEASE_ASSERT(vm.heap.expectDoesGC()); 37 37 38 38 if (Allocator allocator = allocatorForNonVirtual(size, AllocatorForMode::AllocatorIfExists)) -
trunk/Source/JavaScriptCore/heap/DeferGC.h
r262475 r262478 1 1 /* 2 * Copyright (C) 2013-20 20Apple Inc. All rights reserved.2 * Copyright (C) 2013-2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 46 46 { 47 47 if (validateDFGDoesGC) 48 m_heap.verifyCanGC();48 RELEASE_ASSERT(m_heap.expectDoesGC()); 49 49 m_heap.decrementDeferralDepthAndGCIfNeeded(); 50 50 } -
trunk/Source/JavaScriptCore/heap/GCDeferralContextInlines.h
r262475 r262478 1 1 /* 2 * Copyright (C) 2016-20 20Apple Inc. All rights reserved.2 * Copyright (C) 2016-2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 39 39 { 40 40 if (validateDFGDoesGC) 41 m_heap.verifyCanGC();41 RELEASE_ASSERT(m_heap.expectDoesGC()); 42 42 43 43 if (UNLIKELY(m_shouldGC)) -
trunk/Source/JavaScriptCore/heap/Heap.cpp
r262475 r262478 1 1 /* 2 * Copyright (C) 2003-20 20Apple Inc. All rights reserved.2 * Copyright (C) 2003-2019 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> 4 4 * … … 1065 1065 { 1066 1066 if (validateDFGDoesGC) 1067 verifyCanGC();1067 RELEASE_ASSERT(expectDoesGC()); 1068 1068 1069 1069 switch (synchronousness) { … … 1098 1098 { 1099 1099 if (validateDFGDoesGC) 1100 verifyCanGC();1100 RELEASE_ASSERT(expectDoesGC()); 1101 1101 1102 1102 if (!m_isSafeToCollect) … … 1122 1122 { 1123 1123 if (validateDFGDoesGC) 1124 verifyCanGC();1124 RELEASE_ASSERT(expectDoesGC()); 1125 1125 1126 1126 if (!m_isSafeToCollect) … … 1785 1785 { 1786 1786 if (validateDFGDoesGC) 1787 verifyCanGC();1787 RELEASE_ASSERT(expectDoesGC()); 1788 1788 1789 1789 while (stopIfNecessarySlow(m_worldState.load())) { } … … 1800 1800 { 1801 1801 if (validateDFGDoesGC) 1802 verifyCanGC();1802 RELEASE_ASSERT(expectDoesGC()); 1803 1803 1804 1804 RELEASE_ASSERT(oldState & hasAccessBit); … … 2602 2602 ASSERT(deferralContext || isDeferred() || !DisallowGC::isInEffectOnCurrentThread()); 2603 2603 if (validateDFGDoesGC) 2604 verifyCanGC();2604 RELEASE_ASSERT(expectDoesGC()); 2605 2605 2606 2606 if (!m_isSafeToCollect) -
trunk/Source/JavaScriptCore/heap/Heap.h
r262475 r262478 2 2 * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2003-20 20Apple Inc. All rights reserved.4 * Copyright (C) 2003-2019 Apple Inc. All rights reserved. 5 5 * 6 6 * This library is free software; you can redistribute it and/or … … 26 26 #include "CollectionScope.h" 27 27 #include "CollectorPhase.h" 28 #include "DFGDoesGCCheck.h"29 28 #include "DeleteAllCodeEffort.h" 30 29 #include "GCConductor.h" … … 305 304 306 305 #if ENABLE(DFG_DOES_GC_VALIDATION) 307 DoesGCCheck* addressOfDoesGC() { return &m_doesGC; } 308 void setDoesGCExpectation(bool expectDoesGC, unsigned nodeIndex, unsigned nodeOp) { m_doesGC.set(expectDoesGC, nodeIndex, nodeOp); } 309 void setDoesGCExpectation(bool expectDoesGC, DoesGCCheck::Special special) { m_doesGC.set(expectDoesGC, special); } 310 void verifyCanGC() { m_doesGC.verifyCanGC(vm()); } 306 bool expectDoesGC() const { return m_expectDoesGC; } 307 void setExpectDoesGC(bool value) { m_expectDoesGC = value; } 308 bool* addressOfExpectDoesGC() { return &m_expectDoesGC; } 311 309 #else 312 DoesGCCheck* addressOfDoesGC() { UNREACHABLE_FOR_PLATFORM(); return nullptr; } 313 void setDoesGCExpectation(bool, unsigned, unsigned) { } 314 void setDoesGCExpectation(bool, DoesGCCheck::Special) { } 315 void verifyCanGC() { } 310 bool expectDoesGC() const { UNREACHABLE_FOR_PLATFORM(); return true; } 311 void setExpectDoesGC(bool) { UNREACHABLE_FOR_PLATFORM(); } 312 bool* addressOfExpectDoesGC() { UNREACHABLE_FOR_PLATFORM(); return nullptr; } 316 313 #endif 317 314 … … 610 607 Lock m_raceMarkStackLock; 611 608 #if ENABLE(DFG_DOES_GC_VALIDATION) 612 DoesGCCheck m_doesGC;609 bool m_expectDoesGC { true }; 613 610 #endif 614 611 -
trunk/Source/JavaScriptCore/heap/HeapInlines.h
r262475 r262478 237 237 { 238 238 if (validateDFGDoesGC) 239 verifyCanGC();239 RELEASE_ASSERT(expectDoesGC()); 240 240 241 241 if (m_worldState.compareExchangeWeak(0, hasAccessBit)) … … 264 264 { 265 265 if (validateDFGDoesGC) 266 verifyCanGC();266 RELEASE_ASSERT(expectDoesGC()); 267 267 268 268 if (mayNeedToStop()) -
trunk/Source/JavaScriptCore/heap/LocalAllocatorInlines.h
r262475 r262478 34 34 { 35 35 if (validateDFGDoesGC) 36 heap.verifyCanGC();36 RELEASE_ASSERT(heap.expectDoesGC()); 37 37 return m_freeList.allocate( 38 38 [&] () -> HeapCell* { -
trunk/Source/JavaScriptCore/heap/PreciseAllocation.cpp
r262475 r262478 44 44 { 45 45 if (validateDFGDoesGC) 46 heap.verifyCanGC();46 RELEASE_ASSERT(heap.expectDoesGC()); 47 47 48 48 size_t adjustedAlignmentAllocationSize = headerSize() + size + halfAlignment; … … 124 124 { 125 125 if (validateDFGDoesGC) 126 heap.verifyCanGC();126 RELEASE_ASSERT(heap.expectDoesGC()); 127 127 128 128 size_t adjustedAlignmentAllocationSize = headerSize() + size + halfAlignment; -
trunk/Source/JavaScriptCore/runtime/JSString.h
r262475 r262478 734 734 { 735 735 if (validateDFGDoesGC) 736 vm.heap.verifyCanGC();736 RELEASE_ASSERT(vm.heap.expectDoesGC()); 737 737 if (c <= maxSingleCharacterString) 738 738 return vm.smallStrings.singleCharacterString(c); … … 764 764 { 765 765 if (validateDFGDoesGC) 766 vm().heap.verifyCanGC();766 RELEASE_ASSERT(vm().heap.expectDoesGC()); 767 767 if (isRope()) 768 768 return static_cast<const JSRopeString*>(this)->resolveRopeToAtomString(globalObject); … … 773 773 { 774 774 if (validateDFGDoesGC) 775 vm().heap.verifyCanGC();775 RELEASE_ASSERT(vm().heap.expectDoesGC()); 776 776 if (isRope()) 777 777 return static_cast<const JSRopeString*>(this)->resolveRopeToExistingAtomString(globalObject); … … 784 784 { 785 785 if (validateDFGDoesGC) 786 vm().heap.verifyCanGC();786 RELEASE_ASSERT(vm().heap.expectDoesGC()); 787 787 if (isRope()) 788 788 return static_cast<const JSRopeString*>(this)->resolveRope(globalObject); … … 794 794 if (allocationAllowed) { 795 795 if (validateDFGDoesGC) 796 vm().heap.verifyCanGC();796 RELEASE_ASSERT(vm().heap.expectDoesGC()); 797 797 if (isRope()) { 798 798 // Pass nullptr for the JSGlobalObject so that resolveRope does not throw in the event of an OOM error. … … 984 984 { 985 985 if (validateDFGDoesGC) 986 vm().heap.verifyCanGC();986 RELEASE_ASSERT(vm().heap.expectDoesGC()); 987 987 if (isSubstring()) { 988 988 auto& base = substringBase()->valueInternal(); … … 997 997 { 998 998 if (validateDFGDoesGC) 999 vm().heap.verifyCanGC();999 RELEASE_ASSERT(vm().heap.expectDoesGC()); 1000 1000 if (isSubstring()) { 1001 1001 auto& base = substringBase()->valueInternal(); … … 1011 1011 { 1012 1012 if (validateDFGDoesGC) 1013 vm().heap.verifyCanGC();1013 RELEASE_ASSERT(vm().heap.expectDoesGC()); 1014 1014 if (isRope()) 1015 1015 return static_cast<const JSRopeString*>(this)->unsafeView(globalObject); -
trunk/Source/JavaScriptCore/runtime/RegExpMatchesArray.h
r262475 r262478 65 65 { 66 66 if (validateDFGDoesGC) 67 vm.heap.verifyCanGC();67 RELEASE_ASSERT(vm.heap.expectDoesGC()); 68 68 69 69 Vector<int, 32> subpatternResults;
Note:
See TracChangeset
for help on using the changeset viewer.