diff --git a/.gitignore b/.gitignore index f1dbddf346c9..1aae9461405e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ .DS_Store .directory /WebKitBuild/ +/Output*/ /test262-results/ autoinstall.cache.d project.xcworkspace diff --git a/Source/JavaScriptCore/dfg/DFGClobberize.h b/Source/JavaScriptCore/dfg/DFGClobberize.h index 67b010bc2f21..757f15597bfa 100644 --- a/Source/JavaScriptCore/dfg/DFGClobberize.h +++ b/Source/JavaScriptCore/dfg/DFGClobberize.h @@ -283,7 +283,7 @@ void clobberize(Graph& graph, Node* node, const ReadFunctor& read, const WriteFu case ArithAbs: if (node->child1().useKind() == Int32Use || node->child1().useKind() == DoubleRepUse) - def(PureValue(node, node->arithMode())); + def(PureValue(node)); else clobberTop(); return; @@ -299,7 +299,7 @@ void clobberize(Graph& graph, Node* node, const ReadFunctor& read, const WriteFu if (node->child1().useKind() == Int32Use || node->child1().useKind() == DoubleRepUse || node->child1().useKind() == Int52RepUse) - def(PureValue(node, node->arithMode())); + def(PureValue(node)); else clobberTop(); return; diff --git a/Source/JavaScriptCore/runtime/JSCast.h b/Source/JavaScriptCore/runtime/JSCast.h index a6993159099c..1608afc0ff8f 100644 --- a/Source/JavaScriptCore/runtime/JSCast.h +++ b/Source/JavaScriptCore/runtime/JSCast.h @@ -33,12 +33,14 @@ template inline To jsCast(From* from) { static_assert(std::is_base_of::type>::value && std::is_base_of::type>::value, "JS casting expects that the types you are casting to/from are subclasses of JSCell"); +/* #if (ASSERT_ENABLED || ENABLE(SECURITY_ASSERTIONS)) && CPU(X86_64) if (from && !from->JSCell::inherits(from->JSCell::vm(), std::remove_pointer::type::info())) reportZappedCellAndCrash(*from->JSCell::heap(), from); #else ASSERT_WITH_SECURITY_IMPLICATION(!from || from->JSCell::inherits(from->JSCell::vm(), std::remove_pointer::type::info())); #endif +*/ return static_cast(from); } @@ -46,6 +48,7 @@ template inline To jsCast(JSValue from) { static_assert(std::is_base_of::type>::value, "JS casting expects that the types you are casting to is a subclass of JSCell"); +/* #if (ASSERT_ENABLED || ENABLE(SECURITY_ASSERTIONS)) && CPU(X86_64) ASSERT_WITH_SECURITY_IMPLICATION(from.isCell()); JSCell* cell = from.asCell(); @@ -54,6 +57,7 @@ inline To jsCast(JSValue from) #else ASSERT_WITH_SECURITY_IMPLICATION(from.isCell() && from.asCell()->JSCell::inherits(from.asCell()->vm(), std::remove_pointer::type::info())); #endif +*/ return static_cast(from.asCell()); } @@ -142,7 +146,7 @@ inline bool inheritsJSTypeImpl(VM& vm, From* from, JSTypeRange range) static_assert(std::is_base_of::value && std::is_base_of::type>::value, "JS casting expects that the types you are casting to/from are subclasses of JSCell"); bool canCast = range.contains(from->type()); // Do not use inherits(vm) since inherits depends on this function. - ASSERT_UNUSED(vm, canCast == from->JSCell::inherits(vm, Target::info())); + // ASSERT_UNUSED(vm, canCast == from->JSCell::inherits(vm, Target::info())); return canCast; } diff --git a/Source/JavaScriptCore/runtime/WriteBarrier.h b/Source/JavaScriptCore/runtime/WriteBarrier.h index 383f72d04f1e..e24843e22c64 100644 --- a/Source/JavaScriptCore/runtime/WriteBarrier.h +++ b/Source/JavaScriptCore/runtime/WriteBarrier.h @@ -53,6 +53,7 @@ template<> class WriteBarrierBase; JS_EXPORT_PRIVATE void slowValidateCell(JSCell*); JS_EXPORT_PRIVATE void slowValidateCell(JSGlobalObject*); +/* #if ENABLE(GC_VALIDATION) template inline void validateCell(T cell) { @@ -69,10 +70,11 @@ template<> inline void validateCell(JSGlobalObject* globalObjec slowValidateCell(globalObject); } #else +*/ template inline void validateCell(T) { } -#endif +//#endif // We have a separate base class with no constructors for use in Unions. template class WriteBarrierBase { diff --git a/Source/bmalloc/bmalloc/Gigacage.cpp b/Source/bmalloc/bmalloc/Gigacage.cpp index d10214881d9b..b47532b5e3ed 100644 --- a/Source/bmalloc/bmalloc/Gigacage.cpp +++ b/Source/bmalloc/bmalloc/Gigacage.cpp @@ -135,6 +135,7 @@ void ensureGigacage() // largest value of n so that n! <= 2^64. static_assert(NumberOfKinds <= 21, "too many kinds"); uint64_t random; + /* cryptoRandom(reinterpret_cast(&random), sizeof(random)); for (unsigned i = NumberOfKinds; i--;) { unsigned limit = i + 1; @@ -142,7 +143,7 @@ void ensureGigacage() random /= limit; std::swap(shuffledKinds[i], shuffledKinds[j]); } - + */ auto alignTo = [] (Kind kind, size_t totalSize) -> size_t { return roundUpToMultipleOf(alignment(kind), totalSize); }; diff --git a/Source/bmalloc/bmalloc/VMAllocate.h b/Source/bmalloc/bmalloc/VMAllocate.h index de8e8b2589f4..1138135fe640 100644 --- a/Source/bmalloc/bmalloc/VMAllocate.h +++ b/Source/bmalloc/bmalloc/VMAllocate.h @@ -123,7 +123,9 @@ inline void vmValidatePhysical(void* p, size_t vmSize) inline void* tryVMAllocate(size_t vmSize, VMTag usage = VMTag::Malloc) { vmValidate(vmSize); - void* result = mmap(0, vmSize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON | BMALLOC_NORESERVE, static_cast(usage), 0); + static long long mmapPrefix = 1; + void* result = mmap((void*)(mmapPrefix*0x10000000000ll), vmSize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON | BMALLOC_NORESERVE, static_cast(usage), 0); + mmapPrefix++; if (result == MAP_FAILED) return nullptr; return result;