Merge pull request #2 from darlinghq/update_sources_11.5

Update Sources 11.5 - WTF
This commit is contained in:
CuriousTommy 2023-05-11 22:17:33 -07:00 committed by GitHub
commit e1426d7348
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
745 changed files with 59564 additions and 15431 deletions

11
CMakeLists.apple.txt Normal file
View File

@ -0,0 +1,11 @@
cmake_minimum_required(VERSION 3.10)
include(WebKitCommon)
set_property(DIRECTORY . PROPERTY FOLDER "WTF")
add_subdirectory(wtf)
# Apple builds have the ICU headers checked into ${WTF_DIR}/icu
# Copy them into ${ICU_INCLUDE_DIRS} so the build behaves like find_package was used
if (USE_APPLE_ICU)
file(COPY ${WTF_DIR}/icu/unicode DESTINATION ${ICU_INCLUDE_DIRS})
endif ()

View File

@ -50,10 +50,12 @@ add_darling_static_library(WTF FAT SOURCES
wtf/ASCIICType.cpp
wtf/Assertions.cpp
wtf/AutomaticThread.cpp
wtf/Bag.cpp
wtf/BitVector.cpp
wtf/BlockObjCExceptions.mm
wtf/ClockType.cpp
wtf/CompilationThread.cpp
wtf/ConcurrentBuffer.cpp
wtf/ConcurrentPtrHashSet.cpp
wtf/CountingLock.cpp
wtf/CPUTime.cpp
@ -64,6 +66,7 @@ add_darling_static_library(WTF FAT SOURCES
wtf/CurrentTime.cpp
wtf/DataLog.cpp
wtf/DateMath.cpp
wtf/DebugHeap.cpp
wtf/dtoa.cpp
wtf/FastBitVector.cpp
wtf/FastMalloc.cpp
@ -82,16 +85,17 @@ add_darling_static_library(WTF FAT SOURCES
wtf/LockedPrintStream.cpp
wtf/Logger.cpp
wtf/MainThread.cpp
wtf/MD5.cpp
wtf/MediaTime.cpp
wtf/MemoryPressureHandler.cpp
wtf/MetaAllocator.cpp
wtf/MonotonicTime.cpp
wtf/NumberOfCores.cpp
wtf/ObjectIdentifier.cpp
wtf/OSLogPrintStream.cpp
wtf/OSRandomSource.cpp
wtf/PageBlock.cpp
wtf/ParallelHelperPool.cpp
wtf/ParallelJobsGeneric.cpp
wtf/ParkingLot.cpp
wtf/PlatformRegisters.cpp
wtf/PrintStream.cpp
@ -101,49 +105,63 @@ add_darling_static_library(WTF FAT SOURCES
wtf/RandomDevice.cpp
wtf/RandomNumber.cpp
wtf/ReadWriteLock.cpp
wtf/RefCounted.cpp
wtf/RefCountedArray.cpp
wtf/RefCountedLeakCounter.cpp
wtf/RunLoop.cpp
wtf/Seconds.cpp
wtf/SegmentedVector.cpp
wtf/SHA1.cpp
wtf/SixCharacterHash.cpp
wtf/SizeLimits.cpp
wtf/SmallPtrSet.cpp
wtf/StackBounds.cpp
wtf/StackPointer.cpp
wtf/StackStats.cpp
wtf/StackTrace.cpp
wtf/StdFilesystem.cpp
wtf/StringPrintStream.cpp
wtf/ThreadGroup.cpp
wtf/Threading.cpp
wtf/ThreadMessage.cpp
wtf/TimeWithDynamicClockType.cpp
wtf/TimingScope.cpp
wtf/TranslatedProcess.cpp
wtf/UniqueArray.cpp
wtf/URL.cpp
wtf/URLHelpers.cpp
wtf/URLParser.cpp
wtf/UUID.cpp
wtf/Vector.cpp
wtf/WallTime.cpp
wtf/WordLock.cpp
wtf/WorkerPool.cpp
wtf/WorkQueue.cpp
wtf/WTFAssertions.cpp
wtf/WTFConfig.cpp
wtf/cf/CFURLExtras.cpp
wtf/cf/FileSystemCF.cpp
wtf/cf/LanguageCF.cpp
wtf/cf/RunLoopCF.cpp
wtf/cf/RunLoopTimerCF.cpp
wtf/cf/SchedulePairCF.cpp
wtf/cf/URLCF.cpp
wtf/cocoa/AutodrainedPool.cpp
wtf/cocoa/CPUTimeCocoa.cpp
wtf/cocoa/CrashReporter.cpp
wtf/cocoa/Entitlements.mm
wtf/cocoa/FileSystemCocoa.mm
wtf/cocoa/LanguageCocoa.mm
wtf/cocoa/MachSemaphore.cpp
wtf/cocoa/MachSendRight.cpp
wtf/cocoa/MainThreadCocoa.mm
wtf/cocoa/MemoryFootprintCocoa.cpp
wtf/cocoa/MemoryPressureHandlerCocoa.mm
wtf/cocoa/NSURLExtras.mm
wtf/cocoa/ResourceUsageCocoa.cpp
wtf/cocoa/RuntimeApplicationChecksCocoa.cpp
wtf/cocoa/SystemTracingCocoa.cpp
wtf/cocoa/URLCocoa.mm
wtf/cocoa/WorkQueueCocoa.cpp
@ -158,7 +176,6 @@ add_darling_static_library(WTF FAT SOURCES
wtf/ios/WebCoreThread.cpp
wtf/mac/DeprecatedSymbolsUsedBySafari.mm
wtf/mac/FileSystemMac.mm
wtf/mac/SchedulePairMac.mm
@ -180,7 +197,9 @@ add_darling_static_library(WTF FAT SOURCES
wtf/text/Base64.cpp
wtf/text/CString.cpp
wtf/text/ExternalStringImpl.cpp
wtf/text/LineBreakIteratorPoolICU.cpp
wtf/text/LineEnding.cpp
wtf/text/StringBuffer.cpp
wtf/text/StringBuilder.cpp
wtf/text/StringBuilderJSON.cpp
wtf/text/StringImpl.cpp
@ -213,5 +232,55 @@ add_darling_static_library(WTF FAT SOURCES
wtf/unicode/UTF8Conversion.cpp
wtf/unicode/icu/CollatorICU.cpp
wtf/unicode/icu/ICUHelpers.cpp
# benchmarks/ConditionSpeedTest.cpp
# benchmarks/HashSetDFGReplay.cpp
# benchmarks/LockFairnessTest.cpp
# benchmarks/LockSpeedTest.cpp
# wtf/generic/MainThreadGeneric.cpp
# wtf/generic/MemoryFootprintGeneric.cpp
# wtf/generic/MemoryPressureHandlerGeneric.cpp
# wtf/generic/RunLoopGeneric.cpp
# wtf/generic/WorkQueueGeneric.cpp
# wtf/glib/ChassisType.cpp
# wtf/glib/FileSystemGlib.cpp
# wtf/glib/GLibUtilities.cpp
# wtf/glib/GRefPtr.cpp
# wtf/glib/GSocketMonitor.cpp
# wtf/glib/RunLoopGLib.cpp
# wtf/glib/SocketConnection.cpp
# wtf/glib/URLGLib.cpp
# wtf/linux/CurrentProcessMemoryStatus.cpp
# wtf/linux/MemoryFootprintLinux.cpp
# wtf/playstation/LanguagePlayStation.cpp
# wtf/playstation/UniStdExtrasPlayStation.cpp
# wtf/text/win/StringWin.cpp
# wtf/text/win/TextBreakIteratorInternalICUWin.cpp
# wtf/unix/CPUTimeUnix.cpp
# wtf/unix/LanguageUnix.cpp
# wtf/unix/MemoryPressureHandlerUnix.cpp
# wtf/unix/UniStdExtrasUnix.cpp
# wtf/win/CPUTimeWin.cpp
# wtf/win/DbgHelperWin.cpp
# wtf/win/FileSystemWin.cpp
# wtf/win/LanguageWin.cpp
# wtf/win/MainThreadWin.cpp
# wtf/win/MemoryFootprintWin.cpp
# wtf/win/MemoryPressureHandlerWin.cpp
# wtf/win/OSAllocatorWin.cpp
# wtf/win/PathWalker.cpp
# wtf/win/RunLoopWin.cpp
# wtf/win/ThreadingWin.cpp
# wtf/fuchsia/CPUTimeFuchsia.cpp
# wtf/text/unix/TextBreakIteratorInternalICUUnix.cpp
)
target_link_libraries(WTF bmalloc)

19422
ChangeLog

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
// Copyright (C) 2009-2019 Apple Inc. All rights reserved.
// Copyright (C) 2009-2020 Apple Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
@ -69,7 +69,7 @@ GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OBJC_CALL_CXX_CDTORS = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREPROCESSOR_DEFINITIONS = $(DEBUG_DEFINES) U_DISABLE_RENAMING=1 U_SHOW_CPLUSPLUS_API=0 $(inherited);
GCC_PREPROCESSOR_DEFINITIONS = $(DEBUG_DEFINES) $(inherited);
GCC_STRICT_ALIASING = YES;
GCC_THREADSAFE_STATICS = NO;
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
@ -97,58 +97,59 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
WARNING_CFLAGS = -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough;
WARNING_CFLAGS = -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wconditional-uninitialized -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough -Wvla -Wliteral-conversion;
HEADER_SEARCH_PATHS = $(BUILT_PRODUCTS_DIR)$(WTF_INSTALL_PATH_PREFIX)/usr/local/include $(DSTROOT)$(WTF_INSTALL_PATH_PREFIX)/usr/local/include $(inherited);
SYSTEM_HEADER_SEARCH_PATHS = $(SDK_DIR)$(WTF_INSTALL_PATH_PREFIX)/usr/local/include $(inherited);
LIBRARY_SEARCH_PATHS = $(SDK_DIR)$(WTF_INSTALL_PATH_PREFIX)/usr/local/lib $(inherited);
TARGET_MAC_OS_X_VERSION_MAJOR = $(TARGET_MAC_OS_X_VERSION_MAJOR$(MACOSX_DEPLOYMENT_TARGET:suffix:identifier));
TARGET_MAC_OS_X_VERSION_MAJOR_12 = 101200;
TARGET_MAC_OS_X_VERSION_MAJOR_13 = 101300;
TARGET_MAC_OS_X_VERSION_MAJOR_14 = 101400;
TARGET_MAC_OS_X_VERSION_MAJOR_15 = 101500;
TARGET_MAC_OS_X_VERSION_MAJOR_16 = 101600;
TARGET_MACOS_LEGACY_VERSION_IDENTIFIER = $(TARGET_MACOS_LEGACY_VERSION_IDENTIFIER_$(MACOSX_DEPLOYMENT_TARGET:base))
TARGET_MACOS_LEGACY_VERSION_IDENTIFIER_10 = 10$(MACOSX_DEPLOYMENT_TARGET:suffix:identifier)
TARGET_MAC_OS_X_VERSION_MAJOR = $(TARGET_MAC_OS_X_VERSION_MAJOR_$(TARGET_MACOS_LEGACY_VERSION_IDENTIFIER))
TARGET_MAC_OS_X_VERSION_MAJOR_ = $(MACOSX_DEPLOYMENT_TARGET:base:base)0000
TARGET_MAC_OS_X_VERSION_MAJOR_10_13 = 101300
TARGET_MAC_OS_X_VERSION_MAJOR_10_14 = 101400
TARGET_MAC_OS_X_VERSION_MAJOR_10_15 = 101500
SUPPORTED_PLATFORMS = iphoneos iphonesimulator macosx appletvos appletvsimulator watchos watchsimulator;
SUPPORTS_MACCATALYST = YES;
// DEBUG_DEFINES, GCC_OPTIMIZATION_LEVEL, STRIP_INSTALLED_PRODUCT and DEAD_CODE_STRIPPING vary between the debug and normal variants.
// We set up the values for each variant here, and have the Debug configuration in the Xcode project use the _debug variant.
DEBUG_DEFINES_debug = ;
DEBUG_DEFINES_normal = NDEBUG;
DEBUG_DEFINES = $(DEBUG_DEFINES_$(CURRENT_VARIANT));
DEAD_CODE_STRIPPING = YES;
DEAD_CODE_STRIPPING[config=Debug] = NO;
GCC_OPTIMIZATION_LEVEL = $(GCC_OPTIMIZATION_LEVEL_$(CURRENT_VARIANT));
GCC_OPTIMIZATION_LEVEL_normal = 3;
GCC_OPTIMIZATION_LEVEL_debug = 0;
DEBUG_DEFINES = NDEBUG;
DEBUG_DEFINES[config=Debug] = ;
STRIP_INSTALLED_PRODUCT = $(STRIP_INSTALLED_PRODUCT_$(CURRENT_VARIANT));
STRIP_INSTALLED_PRODUCT_normal = YES;
STRIP_INSTALLED_PRODUCT_debug = NO;
GCC_OPTIMIZATION_LEVEL = 3;
GCC_OPTIMIZATION_LEVEL[config=Debug] = 0;
DEAD_CODE_STRIPPING_debug = NO;
DEAD_CODE_STRIPPING_normal = YES;
DEAD_CODE_STRIPPING = $(DEAD_CODE_STRIPPING_$(CURRENT_VARIANT));
STRIP_INSTALLED_PRODUCT = YES;
STRIP_INSTALLED_PRODUCT[config=Debug] = NO;
SDKROOT = macosx.internal;
OTHER_CFLAGS = $(ASAN_OTHER_CFLAGS);
OTHER_CPLUSPLUSFLAGS = $(ASAN_OTHER_CPLUSPLUSFLAGS);
OTHER_LDFLAGS = $(ASAN_OTHER_LDFLAGS);
// Disable on all platforms other than macOS, due to <rdar://problem/49013399>.
LLVM_LTO = NO;
LLVM_LTO[sdk=macosx*] = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
WK_LLVM_LTO_NO = NO;
WK_LLVM_LTO_YES = $(WK_USER_LTO_MODE);
WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_10_2_$(XCODE_VERSION_MAJOR)));
WK_XCODE_VERSION_BEFORE_10_2_0700 = YES;
WK_XCODE_SUPPORTS_LTO[arch=arm*] = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_11_4_$(XCODE_VERSION_MAJOR)));
WK_XCODE_VERSION_BEFORE_10_2_0800 = YES;
WK_XCODE_VERSION_BEFORE_10_2_0900 = YES;
WK_XCODE_VERSION_BEFORE_10_2_1000 = $(WK_XCODE_VERSION_BEFORE_10_2_1000_$(XCODE_VERSION_MINOR));
WK_XCODE_VERSION_BEFORE_10_2_1000_1000 = YES;
WK_XCODE_VERSION_BEFORE_10_2_1000_1010 = YES;
WK_XCODE_VERSION_BEFORE_11_4_0800 = YES;
WK_XCODE_VERSION_BEFORE_11_4_0900 = YES;
WK_XCODE_VERSION_BEFORE_11_4_1000 = YES;
WK_XCODE_VERSION_BEFORE_11_4_1100 = $(WK_XCODE_VERSION_BEFORE_11_4_1100_$(XCODE_VERSION_MINOR));
WK_XCODE_VERSION_BEFORE_11_4_1100_1100 = YES;
WK_XCODE_VERSION_BEFORE_11_4_1100_1110 = YES;
WK_XCODE_VERSION_BEFORE_11_4_1100_1120 = YES;
WK_XCODE_VERSION_BEFORE_11_4_1100_1130 = YES;
WK_USER_LTO_MODE = $(WK_USER_LTO_MODE_$(WK_LTO_MODE));
WK_USER_LTO_MODE_full = YES;
WK_USER_LTO_MODE_thin = YES_THIN;

View File

@ -27,14 +27,26 @@
ARCHS = $(ARCHS_STANDARD_32_64_BIT);
ONLY_ACTIVE_ARCH = YES;
TARGET_MAC_OS_X_VERSION_MAJOR = $(MAC_OS_X_VERSION_MAJOR);
// FIXME: Once <rdar://problem/70185899> is fixed, replace the following with
// TARGET_MAC_OS_X_VERSION_MAJOR = $(MAC_OS_X_VERSION_MAJOR)
TARGET_MACOS_11_VERSION_MAJOR = $(TARGET_MACOS_11_VERSION_MAJOR_$(MAC_OS_X_VERSION_MAJOR))
TARGET_MACOS_11_VERSION_MAJOR_110100 = 110000
TARGET_MACOS_11_VERSION_MAJOR_110200 = 110000
TARGET_MACOS_11_VERSION_MAJOR_110300 = 110000
TARGET_MACOS_11_VERSION_MAJOR_110400 = 110000
TARGET_MACOS_11_VERSION_MAJOR_110500 = 110000
TARGET_MACOS_11_VERSION_MAJOR_110600 = 110000
MACOSX_DEPLOYMENT_TARGET = $(MACOSX_DEPLOYMENT_TARGET_$(PLATFORM_NAME)_$(TARGET_MAC_OS_X_VERSION_MAJOR));
MACOSX_DEPLOYMENT_TARGET_macosx_101200 = 10.12;
MACOSX_DEPLOYMENT_TARGET_macosx_101300 = 10.13;
MACOSX_DEPLOYMENT_TARGET_macosx_101400 = 10.14;
MACOSX_DEPLOYMENT_TARGET_macosx_101500 = 10.15;
MACOSX_DEPLOYMENT_TARGET_macosx_101600 = 10.16;
TARGET_MAC_OS_X_VERSION_MAJOR = $(TARGET_MAC_OS_X_VERSION_MAJOR_$(TARGET_MACOS_11_VERSION_MAJOR))
TARGET_MAC_OS_X_VERSION_MAJOR_110000 = 110000
TARGET_MAC_OS_X_VERSION_MAJOR_ = $(MAC_OS_X_VERSION_MAJOR)
MACOSX_DEPLOYMENT_TARGET = $(MACOSX_DEPLOYMENT_TARGET_$(TARGET_MAC_OS_X_VERSION_MAJOR));
MACOSX_DEPLOYMENT_TARGET_101300 = 10.13;
MACOSX_DEPLOYMENT_TARGET_101400 = 10.14;
MACOSX_DEPLOYMENT_TARGET_101500 = 10.15;
MACOSX_DEPLOYMENT_TARGET_110000 = 11.0;
MACOSX_DEPLOYMENT_TARGET_120000 = 12.0;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
DEBUG_INFORMATION_FORMAT = dwarf;

View File

@ -1,4 +1,4 @@
// Copyright (C) 2019 Apple Inc. All rights reserved.
// Copyright (C) 2019-2020 Apple Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
@ -25,6 +25,10 @@ WK_EMPTY_ = YES;
WK_NOT_ = YES;
WK_NOT_YES = NO;
WK_DEFAULT_PLATFORM_NAME = $(WK_DEFAULT_PLATFORM_NAME_$(WK_EMPTY_$(FALLBACK_PLATFORM)));
WK_DEFAULT_PLATFORM_NAME_YES = $(PLATFORM_NAME);
WK_DEFAULT_PLATFORM_NAME_ = $(FALLBACK_PLATFORM);
WK_ALTERNATE_FRAMEWORKS_DIR = $(WK_ALTERNATE_FRAMEWORKS_DIR_$(SDK_VARIANT));
WK_ALTERNATE_FRAMEWORKS_DIR_iosmac = /System/iOSSupport;
WK_USE_ALTERNATE_FRAMEWORKS_DIR = $(WK_NOT_$(WK_EMPTY_$(WK_ALTERNATE_FRAMEWORKS_DIR)));
@ -38,7 +42,7 @@ WK_ALTERNATE_WEBKIT_SDK_PATH_YES = $(WK_ALTERNATE_FRAMEWORKS_DIR)/;
WK_PLATFORM_NAME = $(WK_PLATFORM_NAME_ALTERNATE_$(WK_USE_ALTERNATE_PLATFORM_NAME));
WK_PLATFORM_NAME_ALTERNATE_YES = $(WK_ALTERNATE_PLATFORM_NAME);
WK_PLATFORM_NAME_ALTERNATE_NO = $(PLATFORM_NAME);
WK_PLATFORM_NAME_ALTERNATE_NO = $(WK_DEFAULT_PLATFORM_NAME);
EFFECTIVE_PLATFORM_NAME = $(EFFECTIVE_PLATFORM_NAME_ALTERNATE_$(WK_USE_ALTERNATE_PLATFORM_NAME));
EFFECTIVE_PLATFORM_NAME_ALTERNATE_YES = -$(WK_ALTERNATE_PLATFORM_NAME);

View File

@ -28,6 +28,7 @@ PRODUCT_NAME = WTF;
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
STRIP_INSTALLED_PRODUCT = NO;
EXCLUDED_SOURCE_FILE_NAMES_ = MachExceptions.defs
EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*] = $(EXCLUDED_SOURCE_FILE_NAMES_$(USE_INTERNAL_SDK))
EXCLUDED_SOURCE_FILE_NAMES[sdk=iphonesimulator10*] =
EXCLUDED_SOURCE_FILE_NAMES_ = MachExceptions.defs;
EXCLUDED_SOURCE_FILE_NAMES[sdk=embedded*] = $(EXCLUDED_SOURCE_FILE_NAMES_$(USE_INTERNAL_SDK));
SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks

76
LICENSE-libc++.txt Normal file
View File

@ -0,0 +1,76 @@
==============================================================================
libc++ License
==============================================================================
The libc++ library is dual licensed under both the University of Illinois
"BSD-Like" license and the MIT license. As a user of this code you may choose
to use it under either license. As a contributor, you agree to allow your code
to be used under both.
Full text of the relevant licenses is included below.
==============================================================================
University of Illinois/NCSA
Open Source License
Copyright (c) 2009-2017 by the contributors listed in CREDITS.TXT
All rights reserved.
Developed by:
LLVM Team
University of Illinois at Urbana-Champaign
http://llvm.org
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal with
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimers.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimers in the
documentation and/or other materials provided with the distribution.
* Neither the names of the LLVM Team, University of Illinois at
Urbana-Champaign, nor the names of its contributors may be used to
endorse or promote products derived from this Software without specific
prior written permission.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
SOFTWARE.
==============================================================================
Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

9
README.md Normal file
View File

@ -0,0 +1,9 @@
# darling-WTF
## Upstream URL
https://github.com/apple-oss-distributions/WTF/tree/WTF-7611.3.10.1.3
## Updating Source
When updating the source code, make sure to refer to the [`Updating Sources`](https://docs.darlinghq.org/contributing/updating-sources/index.html#updating-sources) section from the Darling Docs website. Additional details (if any) can be found in [`darling/notes/UPDATE_SOURCE.md`](darling/notes/UPDATE_SOURCE.md).

View File

@ -0,0 +1,246 @@
#!/usr/bin/env ruby
#
# Copyright (c) 2017, 2020 Apple Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
# THE POSSIBILITY OF SUCH DAMAGE.
require "fileutils"
require 'erb'
require 'optparse'
require 'yaml'
options = {
:frontend => nil,
:basePreferences => nil,
:debugPreferences => nil,
:experimentalPreferences => nil,
:internalPreferences => nil,
:outputDirectory => nil,
:templates => []
}
optparse = OptionParser.new do |opts|
opts.banner = "Usage: #{File.basename($0)} --frontend <frontend> --base <base> --debug <debug> --experimental <experimental> --internal <internal> --template file"
opts.separator ""
opts.on("--frontend input", "frontend to generate preferences for (WebKit, WebKitLegacy)") { |frontend| options[:frontend] = frontend }
opts.on("--base input", "file to generate preferences from") { |basePreferences| options[:basePreferences] = basePreferences }
opts.on("--debug input", "file to generate debug preferences from") { |debugPreferences| options[:debugPreferences] = debugPreferences }
opts.on("--experimental input", "file to generate experimental preferences from") { |experimentalPreferences| options[:experimentalPreferences] = experimentalPreferences }
opts.on("--internal input", "file to generate internal preferences from") { |internalPreferences| options[:internalPreferences] = internalPreferences }
opts.on("--template input", "template to use for generation (may be specified multiple times)") { |template| options[:templates] << template }
opts.on("--outputDir output", "directory to generate file in") { |outputDir| options[:outputDirectory] = outputDir }
end
optparse.parse!
if !options[:frontend] || !options[:basePreferences] || !options[:debugPreferences] || !options[:experimentalPreferences] || !options[:internalPreferences]
puts optparse
exit -1
end
if !options[:outputDirectory]
options[:outputDirectory] = Dir.getwd
end
FileUtils.mkdir_p(options[:outputDirectory])
def load(path)
parsed = begin
YAML.load_file(path)
rescue ArgumentError => e
puts "ERROR: Could not parse input file: #{e.message}"
exit(-1)
end
if parsed
previousName = nil
parsed.keys.each do |name|
if previousName != nil and previousName > name
puts "ERROR: Input file #{path} is not sorted. First out of order name found is '#{name}'."
exit(-1)
end
previousName = name
end
end
parsed
end
parsedBasePreferences = load(options[:basePreferences])
parsedDebugPreferences = load(options[:debugPreferences])
parsedExperimentalPreferences = load(options[:experimentalPreferences])
parsedInternalPreferences = load(options[:internalPreferences])
class Preference
attr_accessor :name
attr_accessor :opts
attr_accessor :type
attr_accessor :humanReadableName
attr_accessor :humanReadableDescription
attr_accessor :webcoreBinding
attr_accessor :condition
attr_accessor :hidden
attr_accessor :defaultValues
attr_accessor :exposed
def initialize(name, opts, frontend)
@name = name
@opts = opts
@type = opts["type"]
@humanReadableName = '"' + (opts["humanReadableName"] || "") + '"'
@humanReadableDescription = '"' + (opts["humanReadableDescription"] || "") + '"'
@getter = opts["getter"]
@webcoreBinding = opts["webcoreBinding"]
@webcoreName = opts["webcoreName"]
@condition = opts["condition"]
@hidden = opts["hidden"] || false
@defaultValues = opts["defaultValue"][frontend]
@exposed = !opts["exposed"] || opts["exposed"].include?(frontend)
end
def nameLower
if @getter
@getter
elsif @name.start_with?("VP")
@name[0..1].downcase + @name[2..@name.length]
elsif @name.start_with?("CSS", "DOM", "DNS", "FTP", "ICE", "IPC", "PDF", "XSS")
@name[0..2].downcase + @name[3..@name.length]
elsif @name.start_with?("HTTP")
@name[0..3].downcase + @name[4..@name.length]
else
@name[0].downcase + @name[1..@name.length]
end
end
def webcoreNameUpper
if @webcoreName
@webcoreName[0].upcase + @webcoreName[1..@webcoreName.length]
else
@name
end
end
def typeUpper
if @type == "uint32_t"
"UInt32"
else
@type.capitalize
end
end
# WebKitLegacy specific helpers.
def preferenceKey
if @opts["webKitLegacyPreferenceKey"]
@opts["webKitLegacyPreferenceKey"]
else
"WebKit#{@name}"
end
end
def preferenceAccessor
case @type
when "bool"
"_boolValueForKey"
when "uint32_t"
"_integerValueForKey"
when "double"
"_floatValueForKey"
when "String"
"_stringValueForKey"
else
raise "Unknown type: #{@type}"
end
end
end
class Preferences
attr_accessor :preferences
def initialize(parsedBasePreferences, parsedDebugPreferences, parsedExperimentalPreferences, parsedInternalPreferences, frontend)
@frontend = frontend
@preferences = []
@preferencesNotDebug = initializeParsedPreferences(parsedBasePreferences)
@preferencesDebug = initializeParsedPreferences(parsedDebugPreferences)
@experimentalFeatures = initializeParsedPreferences(parsedExperimentalPreferences)
@internalFeatures = initializeParsedPreferences(parsedInternalPreferences)
@preferences.sort! { |x, y| x.name <=> y.name }
@preferencesNotDebug.sort! { |x, y| x.name <=> y.name }
@preferencesDebug.sort! { |x, y| x.name <=> y.name }
@experimentalFeatures.sort! { |x, y| x.name <=> y.name }.sort! { |x, y| x.humanReadableName <=> y.humanReadableName }
@internalFeatures.sort! { |x, y| x.name <=> y.name }.sort! { |x, y| x.humanReadableName <=> y.humanReadableName }
@exposedPreferences = @preferences.select { |p| p.exposed }
@exposedPreferencesNotDebug = @preferencesNotDebug.select { |p| p.exposed }
@exposedPreferencesDebug = @preferencesDebug.select { |p| p.exposed }
@exposedExperimentalFeatures = @experimentalFeatures.select { |p| p.exposed }
@exposedInternalFeatures = @internalFeatures.select { |p| p.exposed }
@preferencesBoundToSetting = @preferences.select { |p| !p.webcoreBinding }
@preferencesBoundToDeprecatedGlobalSettings = @preferences.select { |p| p.webcoreBinding == "DeprecatedGlobalSettings" }
@preferencesBoundToRuntimeEnabledFeatures = @preferences.select { |p| p.webcoreBinding == "RuntimeEnabledFeatures" }
@warning = "THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT."
end
def initializeParsedPreferences(parsedPreferences)
result = []
if parsedPreferences
parsedPreferences.each do |name, options|
if !options["webcoreBinding"] && options["defaultValue"].size != 3
raise "ERROR: Preferences bound to WebCore::Settings must have default values for all frontends: #{name}"
end
if options["defaultValue"].include?(@frontend)
preference = Preference.new(name, options, @frontend)
@preferences << preference
result << preference
end
end
end
result
end
def renderTemplate(templateFile, outputDirectory)
resultFile = File.join(outputDirectory, File.basename(templateFile, ".erb"))
tempResultFile = resultFile + ".tmp"
output = ERB.new(File.read(templateFile), 0, "-").result(binding)
File.open(tempResultFile, "w+") do |f|
f.write(output)
end
if (!File.exist?(resultFile) || IO::read(resultFile) != IO::read(tempResultFile))
FileUtils.move(tempResultFile, resultFile)
else
FileUtils.remove_file(tempResultFile)
FileUtils.uptodate?(resultFile, [templateFile]) or FileUtils.touch(resultFile)
end
end
end
preferences = Preferences.new(parsedBasePreferences, parsedDebugPreferences, parsedExperimentalPreferences, parsedInternalPreferences, options[:frontend])
options[:templates].each do |template|
preferences.renderTemplate(template, options[:outputDirectory])
end

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,191 @@
# Copyright (c) 2020 Apple Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
# THE POSSIBILITY OF SUCH DAMAGE.
AcceleratedDrawingEnabled:
type: bool
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR)": true
default: false
WebKit:
default: true
WebCore:
default: false
# FIXME: WebKit has an alternate name for this called 'ShowDebugBorders'. We should standardize on one name.
CompositingBordersVisible:
type: bool
webKitLegacyPreferenceKey: WebKitShowDebugBorders
webcoreName: showDebugBorders
webcoreOnChange: setNeedsRecalcStyleInAllFrames
inspectorOverride: true
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: WebKit has an alternate name for this called 'ShowRepaintCounter'. We should standardize on one name.
CompositingRepaintCountersVisible:
type: bool
webKitLegacyPreferenceKey: WebKitShowRepaintCounter
webcoreName: showRepaintCounter
webcoreOnChange: setNeedsRecalcStyleInAllFrames
inspectorOverride: true
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
DeveloperExtrasEnabled:
type: bool
webKitLegacyPreferenceKey: WebKitDeveloperExtrasEnabledPreferenceKey
webKitLegacyBinding: custom
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: Starting the preference name with "Disable" is inconsistent with most other preferences and should be changed.
DisableScreenSizeOverride:
type: bool
webcoreBinding: DeprecatedGlobalSettings
condition: PLATFORM(IOS_FAMILY)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
DisplayListDrawingEnabled:
type: bool
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ForceAlwaysUserScalable:
type: bool
webcoreBinding: none
condition: PLATFORM(IOS_FAMILY)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
LegacyLineLayoutVisualCoverageEnabled:
type: bool
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
LogsPageMessagesToSystemConsoleEnabled:
type: bool
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
# FIXME: This is not relevent for WebCore, so should not have WebCore bindings.
NeedsInAppBrowserPrivacyQuirks:
type: bool
humanReadableName: "Needs In-App Browser Privacy Quirks"
humanReadableDescription: "Enable quirks needed to support In-App Browser privacy"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ResourceUsageOverlayVisible:
type: bool
condition: ENABLE(RESOURCE_USAGE)
webcoreOnChange: resourceUsageOverlayVisibleChanged
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
SubpixelAntialiasedLayerTextEnabled:
type: bool
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
"PLATFORM(MAC)": true
default: false
WebKit:
"PLATFORM(MAC)": true
default: false
WebCore:
default: false
# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
TiledScrollingIndicatorVisible:
type: bool
webcoreName: showTiledScrollingIndicator
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
VisibleDebugOverlayRegions:
type: uint32_t
webcoreType: DebugOverlayRegions
defaultValue:
WebKitLegacy:
default: 0
WebKit:
default: 0
WebCore:
default: 0

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,850 @@
# Copyright (c) 2020 Apple Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
# THE POSSIBILITY OF SUCH DAMAGE.
# For internal features:
# The type should be boolean.
# They must include a humanReadableName and humanReadableDescription. This is
# the text exposed to the user from the WebKit client.
# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
AllowViewportShrinkToFitContent:
type: bool
humanReadableName: "Allow Viewport Shrink to Fit Content"
humanReadableDescription: "Allow the viewport shrink to fit content heuristic when appropriate"
condition: PLATFORM(IOS_FAMILY)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
AlwaysZoomOnDoubleTap:
type: bool
humanReadableName: "DTTZ always"
humanReadableDescription: "Double taps zoom, even if we dispatched a click anywhere"
webcoreBinding: none
condition: PLATFORM(IOS_FAMILY)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
AppHighlightsEnabled:
type: bool
humanReadableName: "App Highlights"
humanReadableDescription: "Enable persistent highlights for apps"
condition: ENABLE(APP_HIGHLIGHTS)
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultAppHighlightsEnabled()
WebCore:
default: false
# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
ApplePayRemoteUIEnabled:
type: bool
humanReadableDescription: "Enable Apple Pay Remote UI"
humanReadableName: "Apple Pay Remote UI"
condition: ENABLE(APPLE_PAY_REMOTE_UI)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
AriaReflectionEnabled:
type: bool
humanReadableName: "ARIA Reflection"
humanReadableDescription: "ARIA Reflection support"
webcoreBinding: RuntimeEnabledFeatures
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
AsyncFrameScrollingEnabled:
type: bool
webcoreOnChange: setNeedsRelayoutAllFrames
humanReadableName: "Async Frame Scrolling"
humanReadableDescription: "Perform frame scrolling off the main thread"
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
"USE(NICOSIA)": true
"PLATFORM(IOS_FAMILY)": true
default: WebKit::defaultAsyncFrameScrollingEnabled()
WebCore:
default: false
AsyncOverflowScrollingEnabled:
type: bool
webcoreOnChange: setNeedsRelayoutAllFrames
humanReadableName: "Async Overflow Scrolling"
humanReadableDescription: "Perform overflow scrolling off the main thread"
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
"USE(NICOSIA)": true
"PLATFORM(IOS_FAMILY)": true
default: WebKit::defaultAsyncFrameScrollingEnabled()
WebCore:
default: false
CSSLogicalEnabled:
type: bool
humanReadableName: "CSS Logical Properties and Values"
humanReadableDescription: "Enable CSS Logical Properties and Values"
webcoreBinding: RuntimeEnabledFeatures
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
CSSOMViewScrollingAPIEnabled:
type: bool
humanReadableName: "CSSOM View Scrolling API"
humanReadableDescription: "Implement standard behavior for scrollLeft, scrollTop, scrollWidth, scrollHeight, scrollTo, scrollBy and scrollingElement."
defaultValue:
WebKitLegacy:
default: true
WebKit:
"PLATFORM(IOS_FAMILY)": WebKit::defaultCSSOMViewScrollingAPIEnabled()
default: true
WebCore:
default: false
CaptureAudioInGPUProcessEnabled:
type: bool
humanReadableName: "GPU Process: Audio Capture"
humanReadableDescription: "Enable audio capture in GPU Process"
webcoreBinding: none
condition: ENABLE(MEDIA_STREAM)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: WebKit::defaultCaptureAudioInGPUProcessEnabled()
CaptureAudioInUIProcessEnabled:
type: bool
humanReadableName: "Capture audio in UI Process"
humanReadableDescription: "Enable audio capture in UI Process"
webcoreBinding: none
condition: ENABLE(MEDIA_STREAM)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: WebKit::defaultCaptureAudioInUIProcessEnabled()
CaptureVideoInGPUProcessEnabled:
type: bool
humanReadableName: "GPU Process: Video Capture"
humanReadableDescription: "Enable video capture in GPU Process"
webcoreBinding: none
condition: ENABLE(MEDIA_STREAM)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: WebKit::defaultCaptureVideoInGPUProcessEnabled()
CaptureVideoInUIProcessEnabled:
type: bool
humanReadableName: "Capture video in UI Process"
humanReadableDescription: "Enable video capture in UI Process"
webcoreBinding: none
condition: ENABLE(MEDIA_STREAM)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
DOMPasteAccessRequestsEnabled:
type: bool
humanReadableName: "DOM Paste Access Requests"
humanReadableDescription: "Enable DOM Paste Access Requests"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS) || PLATFORM(MAC)": true
default: false
WebCore:
default: false
# FIXME: This is on by default in WebKit2 (for everything but WatchOS). Perhaps we should consider turning it on for WebKitLegacy as well.
DataListElementEnabled:
type: bool
humanReadableName: "DataList Element"
humanReadableDescription: "Enable datalist elements"
webcoreBinding: RuntimeEnabledFeatures
condition: ENABLE(DATALIST_ELEMENT)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(WATCHOS)": false
default: true
# FIXME: This is on by default in WebKit2 (for macOS at least). Perhaps we should consider turning it on for WebKitLegacy as well.
DateTimeInputsEditableComponentsEnabled:
type: bool
humanReadableName: "Date/Time inputs have editable components"
humanReadableDescription: "Enable multiple editable components in date/time inputs"
condition: ENABLE(DATE_AND_TIME_INPUT_TYPES)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(MAC)": true
default: false
WebCore:
default: false
EnterKeyHintEnabled:
type: bool
humanReadableName: "Enter Key Hint"
humanReadableDescription: "Enable the enterKeyHint HTML attribute"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
default: false
# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
ExperimentalPlugInSandboxProfilesEnabled:
type: bool
humanReadableName: "Sandbox Plug-Ins"
humanReadableDescription: "Enable Plug-In sandboxing"
webcoreBinding: RuntimeEnabledFeatures
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
FasterClicksEnabled:
type: bool
humanReadableName: "Fast clicks"
humanReadableDescription: "Support faster clicks on zoomable pages"
webcoreBinding: none
condition: PLATFORM(IOS_FAMILY)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
# FIXME: This should be reconciled with 'FrameFlattening' in WebPreferences.yaml .
FrameFlatteningEnabled:
type: bool
humanReadableName: "Frame flattening"
humanReadableDescription: "Enable frame flattening, which adjusts the height of an iframe to fit its contents"
webcoreBinding: custom
exposed: [ WebKit ]
defaultValue:
WebKit:
"PLATFORM(IOS_FAMILY)": true
default: false
FullScreenEnabled:
type: bool
humanReadableName: "Fullscreen API"
humanReadableDescription: "Fullscreen API"
condition: ENABLE(FULLSCREEN_API)
hidden: EXPERIMENTAL_FULLSCREEN_API_HIDDEN
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ICECandidateFilteringEnabled:
type: bool
webcoreOnChange: iceCandidateFilteringEnabledChanged
inspectorOverride: true
humanReadableName: "Enable ICE Candidate Filtering"
humanReadableDescription: "Enable ICE Candidate Filtering"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
IOSFormControlRefreshEnabled:
type: bool
humanReadableName: "iOS Form Control Refresh"
humanReadableDescription: "Enable the new appearance for form controls on iOS"
condition: ENABLE(IOS_FORM_CONTROL_REFRESH)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
IPCTestingAPIEnabled:
type: bool
humanReadableName: "IPC Testing API"
humanReadableDescription: "Enable IPC Testing API for JavaScript"
webcoreBinding: none
condition: ENABLE(IPC_TESTING_API)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
InputTypeColorEnabled:
type: bool
humanReadableName: "Color Inputs"
humanReadableDescription: "Enable input elements of type color"
condition: ENABLE(INPUT_TYPE_COLOR)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(WATCHOS)": false
default: true
WebCore:
default: false
InputTypeDateEnabled:
type: bool
humanReadableName: "Date Input"
humanReadableDescription: "Enable input elements of type date"
condition: ENABLE(INPUT_TYPE_DATE)
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"PLATFORM(MACCATALYST) || PLATFORM(APPLETV)": false
default: true
WebCore:
default: false
InputTypeDateTimeLocalEnabled:
type: bool
humanReadableName: "datetime-local Inputs"
humanReadableDescription: "Enable input elements of type datetime-local"
condition: ENABLE(INPUT_TYPE_DATETIMELOCAL)
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"PLATFORM(MACCATALYST) || PLATFORM(APPLETV)": false
default: true
WebCore:
default: false
InputTypeMonthEnabled:
type: bool
humanReadableName: "Month Input"
humanReadableDescription: "Enable input elements of type month"
condition: ENABLE(INPUT_TYPE_MONTH)
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"!PLATFORM(MAC) && !PLATFORM(MACCATALYST) && !PLATFORM(APPLETV)": true
default: false
WebCore:
default: false
InputTypeTimeEnabled:
type: bool
humanReadableName: "Time Input"
humanReadableDescription: "Enable input elements of type time"
condition: ENABLE(INPUT_TYPE_TIME)
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"PLATFORM(MACCATALYST) || PLATFORM(APPLETV)": false
default: true
WebCore:
default: false
InputTypeWeekEnabled:
type: bool
humanReadableName: "Week Input"
humanReadableDescription: "Enable input elements of type week"
condition: ENABLE(INPUT_TYPE_WEEK)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"!PLATFORM(MAC) && !PLATFORM(MACCATALYST) && !PLATFORM(APPLETV)": true
default: false
WebCore:
default: false
# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
IsFirstPartyWebsiteDataRemovalLiveOnTestingEnabled:
type: bool
humanReadableName: "[ITP Live-On] 1 Hour Timeout For Non-Cookie Data Removal"
humanReadableDescription: "Remove all non-cookie website data after just one hour of no user interaction when Intelligent Tracking Prevention is enabled"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
IsFirstPartyWebsiteDataRemovalReproTestingEnabled:
type: bool
humanReadableName: "[ITP Repro] 30 Second Timeout For Non-Cookie Data Removal"
humanReadableDescription: "Remove all non-cookie website data after just 30 seconds of no user interaction when Intelligent Tracking Prevention is enabled"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
KeygenElementEnabled:
type: bool
webKitLegacyPreferenceKey: WebKitKeygenElementEnabledPreferenceKey
webcoreBinding: RuntimeEnabledFeatures
humanReadableName: "HTMLKeygenElement"
humanReadableDescription: "Enables the deprecated and disabled-by-default HTML keygen element."
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
LayoutFormattingContextEnabled:
type: bool
humanReadableName: "Full next-generation layout (LFC)"
humanReadableDescription: "Enable full next-generation layout (LFC)"
webcoreBinding: RuntimeEnabledFeatures
condition: ENABLE(LAYOUT_FORMATTING_CONTEXT)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
LayoutFormattingContextIntegrationEnabled:
type: bool
humanReadableName: "Next-generation line layout integration (LFC)"
humanReadableDescription: "Enable next-generation line layout integration (LFC)"
webcoreBinding: RuntimeEnabledFeatures
condition: ENABLE(LAYOUT_FORMATTING_CONTEXT)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
LegacyOverflowScrollingTouchEnabled:
type: bool
webcoreOnChange: setNeedsRelayoutAllFrames
humanReadableName: "Legacy -webkit-overflow-scrolling property"
humanReadableDescription: "Support the legacy -webkit-overflow-scrolling CSS property"
condition: ENABLE(OVERFLOW_SCROLLING_TOUCH)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
LineHeightUnitsEnabled:
type: bool
humanReadableName: "lh / rlh units"
humanReadableDescription: "Enable the lh and lhr units"
webcoreBinding: RuntimeEnabledFeatures
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
LiveRangeSelectionEnabled:
type: bool
humanReadableName: "Live Ranges in Selection"
humanReadableDescription: "Live range behavior for ranges in the Selection object"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
MediaCaptureRequiresSecureConnection:
type: bool
inspectorOverride: true
humanReadableName: "Limit Media Capture to Secure Sites"
humanReadableDescription: "Limit Media Capture to Secure Sites"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
MockCaptureDevicesEnabled:
type: bool
webcoreOnChange: mockCaptureDevicesEnabledChanged
inspectorOverride: true
condition: ENABLE(MEDIA_STREAM)
humanReadableName: "Enable Mock Capture Devices"
humanReadableDescription: "Enable Mock Capture Devices"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY_SIMULATOR)": true
default: false
WebCore:
default: false
MouseEventsSimulationEnabled:
type: bool
humanReadableName: "Mouse events simulation"
humanReadableDescription: "Enable mouse events dispatch along with touch events on iOS"
webcoreBinding: RuntimeEnabledFeatures
condition: ENABLE(TOUCH_EVENTS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
OffscreenCanvasEnabled:
type: bool
humanReadableName: "OffscreenCanvas"
humanReadableDescription: "Support for the OffscreenCanvas APIs"
webcoreBinding: RuntimeEnabledFeatures
condition: ENABLE(OFFSCREEN_CANVAS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"ENABLE(EXPERIMENTAL_FEATURES) && (PLATFORM(GTK) || PLATFORM(WPE))": true
default: false
PreferFasterClickOverDoubleTap:
type: bool
humanReadableName: "Fast clicks beat DTTZ"
humanReadableDescription: "Prefer a faster click over a double tap"
webcoreBinding: none
condition: PLATFORM(IOS_FAMILY)
exposed: [ WebKit ]
defaultValue:
WebKit:
"PLATFORM(IOS_FAMILY) && !PLATFORM(WATCHOS)": true
default: false
PrefixedWebAudioEnabled:
type: bool
humanReadableName: "Prefixed WebAudio API"
humanReadableDescription: "Prefixed WebAudio API"
condition: ENABLE(WEB_AUDIO)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
RestrictedHTTPResponseAccess:
type: bool
humanReadableName: "Filter HTTP Response for Web Processes"
humanReadableDescription: "Enable HTTP Response filtering for Web Processes"
webcoreBinding: RuntimeEnabledFeatures
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
ScrollingPerformanceTestingEnabled:
type: bool
humanReadableName: "Scroll Performance Testing Enabled"
humanReadableDescription: "Enable behaviors used by scrolling performance tests"
webcoreOnChange: scrollingPerformanceTestingEnabledChanged
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
SecureContextChecksEnabled:
type: bool
humanReadableName: "Secure Context Checks"
humanReadableDescription: "Allow access to HTTPS-only Web APIs over HTTP"
webcoreBinding: RuntimeEnabledFeatures
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
SelectionAcrossShadowBoundariesEnabled:
type: bool
humanReadableName: "Selection across shadow DOM"
humanReadableDescription: "Allow user-initiated selection across shadow DOM boundaries"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
# FIXME: This is not implemented for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
ServiceWorkersEnabled:
type: bool
humanReadableName: "Service Workers"
humanReadableDescription: "Enable Service Workers"
webcoreBinding: RuntimeEnabledFeatures
webcoreName: serviceWorkerEnabled
condition: ENABLE(SERVICE_WORKER)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"ENABLE(EXPERIMENTAL_FEATURES) || PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
SimpleLineLayoutEnabled:
type: bool
webcoreOnChange: setNeedsRecalcStyleInAllFrames
humanReadableName: "Simple line layout"
humanReadableDescription: "Enable simple line layout path (SLL)"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
SpeakerSelectionRequiresUserGesture:
type: bool
humanReadableName: "Require a user gesture for speaker selection"
humanReadableDescription: "Require a user gesture for speaker selection"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
TextAutosizingUsesIdempotentMode:
type: bool
webcoreOnChange: setNeedsRecalcStyleInAllFrames
humanReadableName: "Idempotent Text Autosizing"
humanReadableDescription: "Use idempotent text autosizing mode"
condition: ENABLE(TEXT_AUTOSIZING)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": defaultTextAutosizingUsesIdempotentMode()
default: false
WebCore:
default: false
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
UndoManagerAPIEnabled:
type: bool
humanReadableName: "UndoManager DOM API"
humanReadableDescription: "Enable the UndoManager DOM API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
UseGPUProcessForCanvasRenderingEnabled:
type: bool
humanReadableName: "GPU Process: Canvas Rendering"
humanReadableDescription: "Enable canvas rendering in GPU Process"
webcoreBinding: none
condition: ENABLE(GPU_PROCESS)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: defaultUseGPUProcessForCanvasRenderingEnabled()
UseGPUProcessForDOMRenderingEnabled:
type: bool
humanReadableName: "GPU Process: DOM Rendering"
humanReadableDescription: "Enable DOM rendering in GPU Process"
webcoreBinding: none
condition: ENABLE(GPU_PROCESS)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: defaultUseGPUProcessForDOMRenderingEnabled()
UseGPUProcessForMediaEnabled:
type: bool
humanReadableName: "GPU Process: Media"
humanReadableDescription: "Do all media loading and playback in the GPU Process"
webcoreBinding: none
condition: ENABLE(GPU_PROCESS)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: defaultUseGPUProcessForMediaEnabled()
UseGPUProcessForWebGLEnabled:
type: bool
humanReadableName: "GPU Process: WebGL"
humanReadableDescription: "Enable WebGL in GPU Process"
webcoreBinding: none
condition: ENABLE(GPU_PROCESS)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: defaultUseGPUProcessForWebGLEnabled()
WebAPIStatisticsEnabled:
type: bool
humanReadableName: "Web API Statistics"
humanReadableDescription: "Enable Web API Statistics"
webcoreBinding: RuntimeEnabledFeatures
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebGLUsingMetal:
type: bool
humanReadableName: "WebGL via Metal"
humanReadableDescription: "Use the Metal backend for ANGLE"
webcoreBinding: RuntimeEnabledFeatures
condition: ENABLE(WEBGL)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
WebRTCDTMFEnabled:
type: bool
humanReadableName: "WebRTC DTMF"
humanReadableDescription: "Enable WebRTC DTMF"
webcoreBinding: RuntimeEnabledFeatures
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
WebRTCH264HardwareEncoderEnabled:
type: bool
humanReadableName: "WebRTC H264 Hardware encoder"
humanReadableDescription: "Enable H264 Hardware encoder"
webcoreBinding: none
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
WebRTCH264SimulcastEnabled:
type: bool
humanReadableName: "WebRTC H264 Simulcast"
humanReadableDescription: "Enable WebRTC H264 Simulcast"
webcoreBinding: RuntimeEnabledFeatures
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
WebRTCMDNSICECandidatesEnabled:
type: bool
humanReadableName: "WebRTC mDNS ICE candidates"
humanReadableDescription: "Enable WebRTC mDNS ICE candidates"
webcoreBinding: RuntimeEnabledFeatures
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
ZoomOnDoubleTapWhenRoot:
type: bool
condition: PLATFORM(IOS_FAMILY)
humanReadableName: "DTTZ also when root"
humanReadableDescription: "Double taps zoom, even if we dispatched a click on the root nodes"
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false

View File

@ -50,25 +50,26 @@ def usage(message)
puts "--generate-xcfilelists Generate .xcfilelist files"
puts "--input-xcfilelist-path Path of the generated input .xcfilelist file"
puts "--output-xcfilelist-path Path of the generated output .xcfilelist file"
puts "--feature-flags (-f) Space or semicolon separated list of enabled feature flags"
puts
puts "Generation options:"
puts "--max-cpp-bundle-count Use global sequential numbers for cpp bundle filenames and set the limit on the number"
puts "--max-obj-c-bundle-count Use global sequential numbers for Obj-C bundle filenames and set the limit on the number"
puts "--dense-bundle-filter Densely bundle files matching the given path glob"
exit 1
end
MAX_BUNDLE_SIZE = 8
MAX_DENSE_BUNDLE_SIZE = 64
$derivedSourcesPath = nil
$unifiedSourceOutputPath = nil
$sourceTreePath = nil
$featureFlags = {}
$verbose = false
$mode = :GenerateBundles
$inputXCFilelistPath = nil
$outputXCFilelistPath = nil
$maxCppBundleCount = nil
$maxObjCBundleCount = nil
$denseBundleFilters = []
def log(text)
$stderr.puts text if $verbose
@ -78,14 +79,14 @@ GetoptLong.new(['--help', '-h', GetoptLong::NO_ARGUMENT],
['--verbose', '-v', GetoptLong::NO_ARGUMENT],
['--derived-sources-path', '-d', GetoptLong::REQUIRED_ARGUMENT],
['--source-tree-path', '-s', GetoptLong::REQUIRED_ARGUMENT],
['--feature-flags', '-f', GetoptLong::REQUIRED_ARGUMENT],
['--print-bundled-sources', GetoptLong::NO_ARGUMENT],
['--print-all-sources', GetoptLong::NO_ARGUMENT],
['--generate-xcfilelists', GetoptLong::NO_ARGUMENT],
['--input-xcfilelist-path', GetoptLong::REQUIRED_ARGUMENT],
['--output-xcfilelist-path', GetoptLong::REQUIRED_ARGUMENT],
['--max-cpp-bundle-count', GetoptLong::REQUIRED_ARGUMENT],
['--max-obj-c-bundle-count', GetoptLong::REQUIRED_ARGUMENT]).each {
['--max-obj-c-bundle-count', GetoptLong::REQUIRED_ARGUMENT],
['--dense-bundle-filter', GetoptLong::REQUIRED_ARGUMENT]).each {
| opt, arg |
case opt
when '--help'
@ -97,8 +98,6 @@ GetoptLong.new(['--help', '-h', GetoptLong::NO_ARGUMENT],
when '--source-tree-path'
$sourceTreePath = Pathname.new(arg)
usage("Source tree #{arg} does not exist.") if !$sourceTreePath.exist?
when '--feature-flags'
arg.gsub(/\s+/, ";").split(";").map { |x| $featureFlags[x] = true }
when '--print-bundled-sources'
$mode = :PrintBundledSources
when '--print-all-sources'
@ -113,6 +112,8 @@ GetoptLong.new(['--help', '-h', GetoptLong::NO_ARGUMENT],
$maxCppBundleCount = arg.to_i
when '--max-obj-c-bundle-count'
$maxObjCBundleCount = arg.to_i
when '--dense-bundle-filter'
$denseBundleFilters.push(arg)
end
}
@ -122,7 +123,6 @@ FileUtils.mkpath($unifiedSourceOutputPath) if !$unifiedSourceOutputPath.exist? &
usage("--derived-sources-path must be specified.") if !$unifiedSourceOutputPath
usage("--source-tree-path must be specified.") if !$sourceTreePath
log("Putting unified sources in #{$unifiedSourceOutputPath}")
log("Active Feature flags: #{$featureFlags.keys.inspect}")
usage("At least one source list file must be specified.") if ARGV.length == 0
# Even though CMake will only pass us a single semicolon separated arguemnts, we separate all the arguments for simplicity.
@ -194,6 +194,7 @@ class BundleManager
@maxCount = max
@extraFiles = []
@currentDirectory = nil
@lastBundlingPrefix = nil
end
def writeFile(file, text)
@ -241,13 +242,15 @@ class BundleManager
def addFile(sourceFile)
path = sourceFile.path
raise "wrong extension: #{path.extname} expected #{@extension}" unless path.extname == ".#{@extension}"
if (TopLevelDirectoryForPath(@currentDirectory) != TopLevelDirectoryForPath(path.dirname))
bundlePrefix, bundleSize = BundlePrefixAndSizeForPath(path)
if (@lastBundlingPrefix != bundlePrefix)
log("Flushing because new top level directory; old: #{@currentDirectory}, new: #{path.dirname}")
flush
@lastBundlingPrefix = bundlePrefix
@currentDirectory = path.dirname
@bundleCount = 0 unless @maxCount
end
if @fileCount == MAX_BUNDLE_SIZE
if @fileCount >= bundleSize
log("Flushing because new bundle is full (#{@fileCount} sources)")
flush
end
@ -256,6 +259,16 @@ class BundleManager
end
end
def BundlePrefixAndSizeForPath(path)
topLevelDirectory = TopLevelDirectoryForPath(path.dirname)
$denseBundleFilters.each { |filter|
if path.fnmatch(filter)
return filter, MAX_DENSE_BUNDLE_SIZE
end
}
return topLevelDirectory, MAX_BUNDLE_SIZE
end
def TopLevelDirectoryForPath(path)
if !path
return nil
@ -294,7 +307,6 @@ sourceListFiles.each_with_index {
| path, sourceFileIndex |
log("Reading #{path}")
result = []
inDisabledLines = false
File.read(path).lines.each {
| line |
commentStart = line =~ COMMENT_REGEXP
@ -304,26 +316,16 @@ sourceListFiles.each_with_index {
log("After: #{line}")
end
line.strip!
if line == "#endif"
inDisabledLines = false
next
end
next if line.empty? || inDisabledLines
next if line.empty?
if line =~ /\A#if/
raise "malformed #if" unless line =~ /\A#if\s+(\S+)/
inDisabledLines = !$featureFlags[$1]
else
if seen[line]
next if $mode == :GenerateXCFilelists
raise "duplicate line: #{line} in #{path}"
end
seen[line] = true
result << SourceFile.new(line, sourceFileIndex)
if seen[line]
next if $mode == :GenerateXCFilelists
raise "duplicate line: #{line} in #{path}"
end
seen[line] = true
result << SourceFile.new(line, sourceFileIndex)
}
raise "Couldn't find closing \"#endif\"" if inDisabledLines
log("Found #{result.length} source files in #{path}")
sourceFiles += result

View File

@ -46,9 +46,9 @@
<Target Name="Build" AfterTargets="PreBuild">
<Message Text="Building $(CONFIGURATION) Solution" />
<Error Text="DSTROOT property or environment variable must be defined." Condition="'$(DSTROOT)' == ''" />
<Exec Command="$(CMakeCommandCommon) -DWTF_CPU_X86=1 -G &quot;Visual Studio 15 2017&quot;" WorkingDirectory="$(OBJROOT)/$(CONFIG)/build32"/>
<Exec Command="$(CMakeCommandCommon) -DWTF_CPU_X86=1 -A Win32 -G &quot;Visual Studio 16 2019&quot;" WorkingDirectory="$(OBJROOT)/$(CONFIG)/build32"/>
<Exec Command="msbuild Project.sln /p:Configuration=$(CONFIG)" WorkingDirectory="$(OBJROOT)/$(CONFIG)/build32"/>
<Exec Command="$(CMakeCommandCommon) -DWTF_CPU_X86_64=1 -G &quot;Visual Studio 15 2017 Win64&quot;" WorkingDirectory="$(OBJROOT)/$(CONFIG)/build64"/>
<Exec Command="$(CMakeCommandCommon) -DWTF_CPU_X86_64=1 -A x64 -G &quot;Visual Studio 16 2019&quot;" WorkingDirectory="$(OBJROOT)/$(CONFIG)/build64"/>
<Exec Command="msbuild Project.sln /p:Configuration=$(CONFIG)" WorkingDirectory="$(OBJROOT)/$(CONFIG)/build64"/>
</Target>

View File

@ -37,8 +37,13 @@
0F824A681B7443A0002E345D /* ParkingLot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F824A641B7443A0002E345D /* ParkingLot.cpp */; };
0F8E85DB1FD485B000691889 /* CountingLock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F8E85DA1FD485B000691889 /* CountingLock.cpp */; };
0F8F2B92172E0103007DBDA5 /* CompilationThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F8F2B8F172E00F0007DBDA5 /* CompilationThread.cpp */; };
0F95B63320CB4B7700479635 /* DebugHeap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F95B63220CB4B7700479635 /* DebugHeap.cpp */; };
0F95B63720CB5EFD00479635 /* StringBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F95B63620CB5EFD00479635 /* StringBuffer.cpp */; };
0F9D3360165DBA73005AD387 /* FilePrintStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F9D335B165DBA73005AD387 /* FilePrintStream.cpp */; };
0F9D3362165DBA73005AD387 /* PrintStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F9D335D165DBA73005AD387 /* PrintStream.cpp */; };
0FA6F38F20CC580F00A03DCD /* SegmentedVector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FA6F38E20CC580E00A03DCD /* SegmentedVector.cpp */; };
0FA6F39320CC73A300A03DCD /* SmallPtrSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FA6F39220CC73A200A03DCD /* SmallPtrSet.cpp */; };
0FA6F39520CCACE900A03DCD /* UniqueArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FA6F39420CCACE900A03DCD /* UniqueArray.cpp */; };
0FDDBFA71666DFA300C55FEF /* StringPrintStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FDDBFA51666DFA300C55FEF /* StringPrintStream.cpp */; };
0FE1646A1B6FFC9600400E7C /* Lock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FE164681B6FFC9600400E7C /* Lock.cpp */; };
0FE4479C1B7AAA03009498EB /* WordLock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FE4479A1B7AAA03009498EB /* WordLock.cpp */; };
@ -49,18 +54,21 @@
143F611F1565F0F900DB514A /* RAMSize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 143F611D1565F0F900DB514A /* RAMSize.cpp */; };
1469419D16EAB10A0024E146 /* AutodrainedPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1469419B16EAB10A0024E146 /* AutodrainedPool.cpp */; };
1A1D8B9E1731879800141DA4 /* FunctionDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A1D8B9D1731879800141DA4 /* FunctionDispatcher.cpp */; };
1ACADD841884480100D8B71D /* DeprecatedSymbolsUsedBySafari.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1ACADD821884480100D8B71D /* DeprecatedSymbolsUsedBySafari.mm */; };
1C181C7F1D3078DA00F5FA16 /* TextBreakIterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C181C7D1D3078DA00F5FA16 /* TextBreakIterator.cpp */; };
1C181C8F1D307AB800F5FA16 /* UTextProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C181C891D307AB800F5FA16 /* UTextProvider.cpp */; };
1C181C911D307AB800F5FA16 /* UTextProviderLatin1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C181C8B1D307AB800F5FA16 /* UTextProviderLatin1.cpp */; };
1C181C931D307AB800F5FA16 /* UTextProviderUTF16.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C181C8D1D307AB800F5FA16 /* UTextProviderUTF16.cpp */; };
1C181C961D30800A00F5FA16 /* TextBreakIteratorInternalICUCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C181C951D30800A00F5FA16 /* TextBreakIteratorInternalICUCocoa.cpp */; };
1C503BE623AAE0AE0072E66B /* LanguageCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C503BE523AAE0AE0072E66B /* LanguageCocoa.mm */; };
1CA85CA9241B0B260071C2F5 /* RuntimeApplicationChecksCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1CA85CA8241B0B260071C2F5 /* RuntimeApplicationChecksCocoa.cpp */; };
1FA47C8A152502DA00568D1B /* WebCoreThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1FA47C88152502DA00568D1B /* WebCoreThread.cpp */; };
2CCD892A15C0390200285083 /* GregorianDateTime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2CCD892915C0390200285083 /* GregorianDateTime.cpp */; };
2CDED0EF18115C38004DBA70 /* RunLoopCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2CDED0EE18115C38004DBA70 /* RunLoopCF.cpp */; };
2CDED0F318115C85004DBA70 /* RunLoop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2CDED0F118115C85004DBA70 /* RunLoop.cpp */; };
3337DB9CE743410FAF076E17 /* StackTrace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 313EDEC9778E49C9BEA91CFC /* StackTrace.cpp */; };
4427C5AA21F6D6C300A612A4 /* ASCIICType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4427C5A921F6D6C300A612A4 /* ASCIICType.cpp */; };
46BEB6EB22FFE24900269867 /* RefCounted.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46BEB6E922FFDDD500269867 /* RefCounted.cpp */; };
46CB6B3D258AD93F006333B3 /* MachSemaphore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46BAA9C8258AD5A500795877 /* MachSemaphore.cpp */; };
50DE35F5215BB01500B979C7 /* ExternalStringImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50DE35F3215BB01500B979C7 /* ExternalStringImpl.cpp */; };
515F794E1CFC9F4A00CCED93 /* CrossThreadCopier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 515F794B1CFC9F4A00CCED93 /* CrossThreadCopier.cpp */; };
517F82D71FD22F3000DA3DEA /* CrossThreadTaskHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517F82D51FD22F2F00DA3DEA /* CrossThreadTaskHandler.cpp */; };
@ -68,9 +76,11 @@
51F1752C1F3D486000C74950 /* PersistentDecoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F175271F3D486000C74950 /* PersistentDecoder.cpp */; };
51F1752D1F3D486000C74950 /* PersistentEncoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F175291F3D486000C74950 /* PersistentEncoder.cpp */; };
52183012C99E476A84EEBEA8 /* SymbolImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F72BBDB107FA424886178B9E /* SymbolImpl.cpp */; };
521CC6B424A27809004377D6 /* TranslatedProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 521CC6B324A277C2004377D6 /* TranslatedProcess.cpp */; };
5311BD531EA71CAD00525281 /* Signals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5311BD511EA71CAD00525281 /* Signals.cpp */; };
5311BD5C1EA822F900525281 /* ThreadMessage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5311BD5B1EA822F900525281 /* ThreadMessage.cpp */; };
53534F2A1EC0E10E00141B2F /* MachExceptions.defs in Sources */ = {isa = PBXBuildFile; fileRef = 53534F291EC0E10E00141B2F /* MachExceptions.defs */; settings = {ATTRIBUTES = (Client, Server, ); }; };
53FC70D023FB950C005B1990 /* OSLogPrintStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 53FC70CF23FB950C005B1990 /* OSLogPrintStream.cpp */; };
5C1F05932164356B0039302C /* CFURLExtras.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C1F05912164356B0039302C /* CFURLExtras.cpp */; };
5C1F0595216437B30039302C /* URLCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C1F0594216437B30039302C /* URLCF.cpp */; };
5CC0EE7521629F1900A1A842 /* URLParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CC0EE7321629F1900A1A842 /* URLParser.cpp */; };
@ -84,6 +94,7 @@
7A6EBA3420746C34004F9C44 /* MachSendRight.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A6EBA3320746C34004F9C44 /* MachSendRight.cpp */; };
7AF023B52061E17000A8EFD6 /* ProcessPrivilege.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AF023B42061E16F00A8EFD6 /* ProcessPrivilege.cpp */; };
7AFEC6B11EB22B5900DADE36 /* UUID.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AFEC6B01EB22B5900DADE36 /* UUID.cpp */; };
7C595FFE252A96E000E42168 /* StdFilesystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C595FFD252A96E000E42168 /* StdFilesystem.cpp */; };
8134013815B092FD001FF0B8 /* Base64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8134013615B092FD001FF0B8 /* Base64.cpp */; };
8348BA0E21FBC0D500FD3054 /* ObjectIdentifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8348BA0D21FBC0D400FD3054 /* ObjectIdentifier.cpp */; };
93934BD318A1E8C300D0D6A1 /* StringViewCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 93934BD218A1E8C300D0D6A1 /* StringViewCocoa.mm */; };
@ -102,7 +113,6 @@
A3E4DD931F3A803400DED0B4 /* TextStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A3E4DD911F3A803400DED0B4 /* TextStream.cpp */; };
A3EE5C3A21FFAC5F00FABD61 /* OSAllocatorPOSIX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A3EE5C3921FFAC5E00FABD61 /* OSAllocatorPOSIX.cpp */; };
A3EE5C3D21FFAC7D00FABD61 /* SchedulePairCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A3EE5C3B21FFAC7C00FABD61 /* SchedulePairCF.cpp */; };
A3EE5C3E21FFAC7D00FABD61 /* RunLoopTimerCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A3EE5C3C21FFAC7D00FABD61 /* RunLoopTimerCF.cpp */; };
A3EE5C4021FFACA200FABD61 /* SchedulePairMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = A3EE5C3F21FFACA200FABD61 /* SchedulePairMac.mm */; };
A5BA15F3182433A900A82E69 /* StringCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5BA15F2182433A900A82E69 /* StringCocoa.mm */; };
A5BA15F51824348000A82E69 /* StringImplCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5BA15F41824348000A82E69 /* StringImplCocoa.mm */; };
@ -129,7 +139,6 @@
A8A473D8151A825B004123FF /* HashTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8A472B8151A825A004123FF /* HashTable.cpp */; };
A8A473E4151A825B004123FF /* MainThreadCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = A8A472C5151A825A004123FF /* MainThreadCocoa.mm */; };
A8A473E5151A825B004123FF /* MainThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8A472C6151A825A004123FF /* MainThread.cpp */; };
A8A473E9151A825B004123FF /* MD5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8A472CA151A825B004123FF /* MD5.cpp */; };
A8A473EC151A825B004123FF /* MetaAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8A472CD151A825B004123FF /* MetaAllocator.cpp */; };
A8A473F4151A825B004123FF /* NumberOfCores.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8A472D5151A825B004123FF /* NumberOfCores.cpp */; };
A8A473F9151A825B004123FF /* OSRandomSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8A472DA151A825B004123FF /* OSRandomSource.cpp */; };
@ -157,16 +166,26 @@
C2BCFC551F621F3F00C9222C /* LineEnding.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C2BCFC531F621F3F00C9222C /* LineEnding.cpp */; };
C805EF39E5F14481A96D39FC /* ASCIILiteral.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F050790D9C432A99085E75 /* ASCIILiteral.cpp */; };
CD5497AC15857D0300B5BC30 /* MediaTime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD5497AA15857D0300B5BC30 /* MediaTime.cpp */; };
CEA072AA236FFBF70018839C /* CrashReporter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA072A9236FFBF70018839C /* CrashReporter.cpp */; };
DCEE22011CEA7551000C2396 /* BlockObjCExceptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = DCEE21FD1CEA7551000C2396 /* BlockObjCExceptions.mm */; };
E15556F518A0CC18006F48FB /* CryptographicUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E15556F318A0CC18006F48FB /* CryptographicUtilities.cpp */; };
E311FB171F0A568B003C08DE /* ThreadGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E311FB151F0A568B003C08DE /* ThreadGroup.cpp */; };
E3149A37228BB42200BFA6C7 /* Bag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FEBA64120CF37100074941C /* Bag.cpp */; };
E3149A38228BB42C00BFA6C7 /* RefCountedArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FA6F39020CC61EB00A03DCD /* RefCountedArray.cpp */; };
E3149A39228BB43500BFA6C7 /* Vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F95B63420CB53C100479635 /* Vector.cpp */; };
E3149A3B228BDCAC00BFA6C7 /* ConcurrentBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3149A3A228BDCAB00BFA6C7 /* ConcurrentBuffer.cpp */; };
E388886F20C9095100E632BC /* WorkerPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E388886D20C9095100E632BC /* WorkerPool.cpp */; };
E38C41251EB4E04C0042957D /* CPUTimeCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E38C41241EB4E04C0042957D /* CPUTimeCocoa.cpp */; };
E38C41281EB4E0680042957D /* CPUTime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E38C41261EB4E0680042957D /* CPUTime.cpp */; };
E38D6E271F5522E300A75CC4 /* StringBuilderJSON.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E38D6E261F5522E300A75CC4 /* StringBuilderJSON.cpp */; };
E392FA2722E92BFF00ECDC73 /* ResourceUsageCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E392FA2622E92BFF00ECDC73 /* ResourceUsageCocoa.cpp */; };
E3A32BC41FC830E2007D7E76 /* JSValueMalloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3A32BC21FC830E2007D7E76 /* JSValueMalloc.cpp */; };
E3B8E41D24E7CE92003655D8 /* LineBreakIteratorPoolICU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3B8E41C24E7CE92003655D8 /* LineBreakIteratorPoolICU.cpp */; };
E3BE09A724A5854D009DF2B4 /* ICUHelpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3BE09A624A58545009DF2B4 /* ICUHelpers.cpp */; };
E4A0AD391A96245500536DF6 /* WorkQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4A0AD371A96245500536DF6 /* WorkQueue.cpp */; };
E4A0AD3D1A96253C00536DF6 /* WorkQueueCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4A0AD3C1A96253C00536DF6 /* WorkQueueCocoa.cpp */; };
EB61EDC72409CCC1001EFE36 /* SystemTracingCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EB61EDC62409CCC0001EFE36 /* SystemTracingCocoa.cpp */; };
FE032AD22463E43B0012D7C7 /* WTFConfig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE032AD02463E43B0012D7C7 /* WTFConfig.cpp */; };
FE05FAFF1FE5007500093230 /* WTFAssertions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE05FAFE1FE5007500093230 /* WTFAssertions.cpp */; };
FE1E2C3B2240C06600F6B729 /* PtrTag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE1E2C392240C05400F6B729 /* PtrTag.cpp */; };
FE1E2C42224187C600F6B729 /* PlatformRegisters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE1E2C41224187C600F6B729 /* PlatformRegisters.cpp */; };
@ -241,13 +260,22 @@
0F8F2B90172E00F0007DBDA5 /* CompilationThread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CompilationThread.h; sourceTree = "<group>"; };
0F8F2B9B172F2594007DBDA5 /* ConversionMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConversionMode.h; sourceTree = "<group>"; };
0F93274A1C17F4B700CF6564 /* Box.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Box.h; sourceTree = "<group>"; };
0F93274A1C17F4B700CF6566 /* BoxPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BoxPtr.h; sourceTree = "<group>"; };
0F9495831C571CC900413A48 /* OrderMaker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OrderMaker.h; sourceTree = "<group>"; };
0F95B63120CB4B7700479635 /* DebugHeap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DebugHeap.h; sourceTree = "<group>"; };
0F95B63220CB4B7700479635 /* DebugHeap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DebugHeap.cpp; sourceTree = "<group>"; };
0F95B63420CB53C100479635 /* Vector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Vector.cpp; sourceTree = "<group>"; };
0F95B63620CB5EFD00479635 /* StringBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringBuffer.cpp; sourceTree = "<group>"; };
0F9D335B165DBA73005AD387 /* FilePrintStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FilePrintStream.cpp; sourceTree = "<group>"; };
0F9D335C165DBA73005AD387 /* FilePrintStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FilePrintStream.h; sourceTree = "<group>"; };
0F9D335D165DBA73005AD387 /* PrintStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PrintStream.cpp; sourceTree = "<group>"; };
0F9D335E165DBA73005AD387 /* PrintStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrintStream.h; sourceTree = "<group>"; };
0F9DAA041FD1C37B0079C5B2 /* StackShot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StackShot.h; sourceTree = "<group>"; };
0F9DAA051FD1C37B0079C5B2 /* StackShotProfiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StackShotProfiler.h; sourceTree = "<group>"; };
0FA6F38E20CC580E00A03DCD /* SegmentedVector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SegmentedVector.cpp; sourceTree = "<group>"; };
0FA6F39020CC61EB00A03DCD /* RefCountedArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RefCountedArray.cpp; sourceTree = "<group>"; };
0FA6F39220CC73A200A03DCD /* SmallPtrSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SmallPtrSet.cpp; sourceTree = "<group>"; };
0FA6F39420CCACE900A03DCD /* UniqueArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UniqueArray.cpp; sourceTree = "<group>"; };
0FB14E18180FA218009B6B4D /* Bag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bag.h; sourceTree = "<group>"; };
0FB14E1A1810E1DA009B6B4D /* BagToHashMap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BagToHashMap.h; sourceTree = "<group>"; };
0FB317C31C488001007E395A /* SystemTracing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SystemTracing.h; sourceTree = "<group>"; };
@ -267,6 +295,7 @@
0FE4479B1B7AAA03009498EB /* WordLock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WordLock.h; sourceTree = "<group>"; };
0FEB3DCE1BB5D684009D7AAD /* SharedTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SharedTask.h; sourceTree = "<group>"; };
0FEB3DD01BB7366B009D7AAD /* ParallelVectorIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParallelVectorIterator.h; sourceTree = "<group>"; };
0FEBA64120CF37100074941C /* Bag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Bag.cpp; sourceTree = "<group>"; };
0FEC3C4F1F323C6800F59B6C /* CagedPtr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CagedPtr.h; sourceTree = "<group>"; };
0FEC3C5C1F368A9700F59B6C /* ReadWriteLock.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ReadWriteLock.cpp; sourceTree = "<group>"; };
0FEC3C5D1F368A9700F59B6C /* ReadWriteLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReadWriteLock.h; sourceTree = "<group>"; };
@ -286,10 +315,10 @@
143F611E1565F0F900DB514A /* RAMSize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAMSize.h; sourceTree = "<group>"; };
1447AEC518FCE57700B3D7FF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
1447AECA18FCE5B900B3D7FF /* libicucore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libicucore.dylib; path = /usr/lib/libicucore.dylib; sourceTree = "<absolute>"; };
1469419016EAAF6D0024E146 /* RunLoopTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RunLoopTimer.h; sourceTree = "<group>"; };
1469419416EAAFF80024E146 /* SchedulePair.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SchedulePair.h; sourceTree = "<group>"; };
1469419A16EAB10A0024E146 /* AutodrainedPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutodrainedPool.h; sourceTree = "<group>"; };
1469419B16EAB10A0024E146 /* AutodrainedPool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AutodrainedPool.cpp; sourceTree = "<group>"; };
147628E5255B3F6F00F093B9 /* CFRunLoopSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFRunLoopSPI.h; sourceTree = "<group>"; };
14933E21228C22DF00F79E46 /* DataVaultSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataVaultSPI.h; sourceTree = "<group>"; };
149EF16216BBFE0D000A4331 /* TriState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TriState.h; sourceTree = "<group>"; };
14E785E71DFB330100209BD1 /* OrdinalNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OrdinalNumber.h; sourceTree = "<group>"; };
@ -299,12 +328,10 @@
1A233C7C17DAA6E300A93ACF /* MallocPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MallocPtr.h; sourceTree = "<group>"; };
1A3524AA1D63A2FF0031729B /* Scope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Scope.h; sourceTree = "<group>"; };
1A3F6BE6174ADA2100B2EEA7 /* NeverDestroyed.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NeverDestroyed.h; sourceTree = "<group>"; };
1A428B8B1C8F89DD0051E9EB /* AppKitCompatibilityDeclarations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppKitCompatibilityDeclarations.h; sourceTree = "<group>"; };
1A4656181C7FC68E00F5920F /* OptionSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionSet.h; sourceTree = "<group>"; };
1A6BB768162F300500DD16DB /* StreamBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StreamBuffer.h; sourceTree = "<group>"; };
1A6EB1DF187D0BD30030126F /* StringView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringView.h; sourceTree = "<group>"; };
1A944F461C3D8814005BD28C /* BlockPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlockPtr.h; sourceTree = "<group>"; };
1ACADD821884480100D8B71D /* DeprecatedSymbolsUsedBySafari.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DeprecatedSymbolsUsedBySafari.mm; sourceTree = "<group>"; };
1AEA88E11D6BBCF400E5AD64 /* EnumTraits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EnumTraits.h; sourceTree = "<group>"; };
1AFDE647195201C300C48FFA /* TypeCastsCF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TypeCastsCF.h; sourceTree = "<group>"; };
1AFDE6521953B23D00C48FFA /* Optional.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Optional.h; sourceTree = "<group>"; };
@ -319,6 +346,10 @@
1C181C8D1D307AB800F5FA16 /* UTextProviderUTF16.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UTextProviderUTF16.cpp; sourceTree = "<group>"; };
1C181C8E1D307AB800F5FA16 /* UTextProviderUTF16.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UTextProviderUTF16.h; sourceTree = "<group>"; };
1C181C951D30800A00F5FA16 /* TextBreakIteratorInternalICUCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextBreakIteratorInternalICUCocoa.cpp; sourceTree = "<group>"; };
1C503BE423AADEEA0072E66B /* NSLocaleSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSLocaleSPI.h; sourceTree = "<group>"; };
1C503BE523AAE0AE0072E66B /* LanguageCocoa.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = LanguageCocoa.mm; sourceTree = "<group>"; };
1CA85CA7241B0B110071C2F5 /* RuntimeApplicationChecksCocoa.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RuntimeApplicationChecksCocoa.h; sourceTree = "<group>"; };
1CA85CA8241B0B260071C2F5 /* RuntimeApplicationChecksCocoa.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RuntimeApplicationChecksCocoa.cpp; sourceTree = "<group>"; };
1CCDB1491E566626006C73C0 /* TextBreakIteratorCF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextBreakIteratorCF.h; sourceTree = "<group>"; };
1CCDB14D1E566898006C73C0 /* TextBreakIteratorICU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextBreakIteratorICU.h; sourceTree = "<group>"; };
1CCDB1511E566BC5006C73C0 /* CFStringSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFStringSPI.h; sourceTree = "<group>"; };
@ -328,11 +359,14 @@
26147B0815DDCCDC00DDB907 /* IntegerToStringConversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntegerToStringConversion.h; sourceTree = "<group>"; };
26299B6D17A9E5B800ADEBE5 /* Ref.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Ref.h; sourceTree = "<group>"; };
2684D4351C000D400081D663 /* IndexSparseSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IndexSparseSet.h; sourceTree = "<group>"; };
275DFB6B238BDF72001230E2 /* OptionSetHash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionSetHash.h; sourceTree = "<group>"; };
2C05385315BC819000F21B96 /* GregorianDateTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GregorianDateTime.h; sourceTree = "<group>"; };
2CCD892915C0390200285083 /* GregorianDateTime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GregorianDateTime.cpp; sourceTree = "<group>"; };
2CDED0EE18115C38004DBA70 /* RunLoopCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RunLoopCF.cpp; sourceTree = "<group>"; };
2CDED0F118115C85004DBA70 /* RunLoop.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RunLoop.cpp; sourceTree = "<group>"; };
2CDED0F218115C85004DBA70 /* RunLoop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RunLoop.h; sourceTree = "<group>"; };
2D1F2F462498F73300C63A83 /* TranslatedProcess.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TranslatedProcess.h; sourceTree = "<group>"; };
2DA442FC24904CA000C9C59D /* OSLogSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OSLogSPI.h; sourceTree = "<group>"; };
304CA4E41375437EBE931D03 /* Markable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Markable.h; sourceTree = "<group>"; };
3137E1D7DBD84AC38FAE4D34 /* IndexSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IndexSet.h; sourceTree = "<group>"; };
313EDEC9778E49C9BEA91CFC /* StackTrace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StackTrace.cpp; sourceTree = "<group>"; };
@ -342,7 +376,11 @@
413FE8F51F8D2EAB00F6D7D7 /* CallbackAggregator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallbackAggregator.h; sourceTree = "<group>"; };
430B47871AAAAC1A001223DA /* StringCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringCommon.h; sourceTree = "<group>"; };
4427C5A921F6D6C300A612A4 /* ASCIICType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ASCIICType.cpp; sourceTree = "<group>"; };
4468567225094FE8008CCA05 /* ThreadSanitizerSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadSanitizerSupport.h; sourceTree = "<group>"; };
46BA9EAB1F4CD61E009A2BBC /* CompletionHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompletionHandler.h; sourceTree = "<group>"; };
46BAA9C8258AD5A500795877 /* MachSemaphore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MachSemaphore.cpp; sourceTree = "<group>"; };
46BAA9C9258AD5A500795877 /* MachSemaphore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachSemaphore.h; sourceTree = "<group>"; };
46BEB6E922FFDDD500269867 /* RefCounted.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RefCounted.cpp; sourceTree = "<group>"; };
50DE35F3215BB01500B979C7 /* ExternalStringImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ExternalStringImpl.cpp; sourceTree = "<group>"; };
50DE35F4215BB01500B979C7 /* ExternalStringImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExternalStringImpl.h; sourceTree = "<group>"; };
513E170A1CD7D5BF00E3650B /* LoggingAccumulator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoggingAccumulator.h; sourceTree = "<group>"; };
@ -361,18 +399,23 @@
51F175281F3D486000C74950 /* PersistentDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PersistentDecoder.h; sourceTree = "<group>"; };
51F175291F3D486000C74950 /* PersistentEncoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PersistentEncoder.cpp; sourceTree = "<group>"; };
51F1752A1F3D486000C74950 /* PersistentEncoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PersistentEncoder.h; sourceTree = "<group>"; };
521CC6B324A277C2004377D6 /* TranslatedProcess.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TranslatedProcess.cpp; sourceTree = "<group>"; };
526AEC911F6B4E5C00695F5D /* NoTailCalls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NoTailCalls.h; sourceTree = "<group>"; };
52B228C12458DC8200753D91 /* ICUHelpers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ICUHelpers.h; sourceTree = "<group>"; };
530A63481FA3E3A00026A545 /* Scripts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Scripts; sourceTree = "<group>"; };
5311BD511EA71CAD00525281 /* Signals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Signals.cpp; sourceTree = "<group>"; };
5311BD551EA7E15A00525281 /* LocklessBag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocklessBag.h; sourceTree = "<group>"; };
5311BD571EA7E1A100525281 /* Signals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Signals.h; sourceTree = "<group>"; };
5311BD591EA81A9600525281 /* ThreadMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadMessage.h; sourceTree = "<group>"; };
5311BD5B1EA822F900525281 /* ThreadMessage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ThreadMessage.cpp; sourceTree = "<group>"; };
5338EBA423AB04D100382662 /* EnumClassOperatorOverloads.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EnumClassOperatorOverloads.h; sourceTree = "<group>"; };
53534F291EC0E10E00141B2F /* MachExceptions.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; path = MachExceptions.defs; sourceTree = "<group>"; };
539EB0621D55284200C82EF7 /* LEBDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LEBDecoder.h; sourceTree = "<group>"; };
53EC253C1E95AD30000831B9 /* PriorityQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PriorityQueue.h; sourceTree = "<group>"; };
53F08A1BA39D49A8BAD369A1 /* StdSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StdSet.h; sourceTree = "<group>"; };
53F1D98620477B9800EBC6BF /* FunctionTraits.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; path = FunctionTraits.h; sourceTree = "<group>"; };
53FC70CE23FB950C005B1990 /* OSLogPrintStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSLogPrintStream.h; sourceTree = "<group>"; };
53FC70CF23FB950C005B1990 /* OSLogPrintStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OSLogPrintStream.cpp; sourceTree = "<group>"; };
553071C91C40427200384898 /* TinyLRUCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TinyLRUCache.h; sourceTree = "<group>"; };
5597F82C1D94B9970066BC21 /* SynchronizedFixedQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SynchronizedFixedQueue.h; sourceTree = "<group>"; };
5B43383A5D0B463C9433D933 /* IndexMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IndexMap.h; sourceTree = "<group>"; };
@ -396,6 +439,7 @@
5FAD3AE021B9636600BEE178 /* URLHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLHelpers.h; sourceTree = "<group>"; };
5FAD3AE121B9636600BEE178 /* URLHelpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = URLHelpers.cpp; sourceTree = "<group>"; };
6541CAF41630DB26006D0DEC /* CopyWTFHeaders.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = CopyWTFHeaders.xcconfig; sourceTree = "<group>"; };
6593CDE922FA4A520087714B /* ProcessMemoryFootprint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProcessMemoryFootprint.h; sourceTree = "<group>"; };
70A993FC1AD7151300FA615B /* SymbolRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SymbolRegistry.cpp; sourceTree = "<group>"; };
70A993FD1AD7151300FA615B /* SymbolRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SymbolRegistry.h; sourceTree = "<group>"; };
70ECA60A1B02426800449739 /* AtomStringImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AtomStringImpl.cpp; sourceTree = "<group>"; };
@ -416,14 +460,27 @@
7C137941222326C700D7A824 /* AUTHORS */ = {isa = PBXFileReference; lastKnownFileType = text; path = AUTHORS; sourceTree = "<group>"; };
7C137942222326D500D7A824 /* ieee.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ieee.h; sourceTree = "<group>"; };
7C137943222326D500D7A824 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
7C3A45D023CFA883007DE3A6 /* PlatformHave.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformHave.h; sourceTree = "<group>"; };
7C3B06E824A116E600FD26C7 /* StringParsingBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StringParsingBuffer.h; sourceTree = "<group>"; };
7C3F72391D78811900674E26 /* Brigand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Brigand.h; sourceTree = "<group>"; };
7C42307123CE2D8A006E54D0 /* PlatformEnable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformEnable.h; sourceTree = "<group>"; };
7C42307223CE2D8A006E54D0 /* PlatformCPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformCPU.h; sourceTree = "<group>"; };
7C42307323CE2D8B006E54D0 /* PlatformOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformOS.h; sourceTree = "<group>"; };
7C42307423CEB187006E54D0 /* PlatformLegacy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformLegacy.h; sourceTree = "<group>"; };
7C595FFC252A96E000E42168 /* StdFilesystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StdFilesystem.h; sourceTree = "<group>"; };
7C595FFD252A96E000E42168 /* StdFilesystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StdFilesystem.cpp; sourceTree = "<group>"; };
7C9692941F66306E00267A9E /* KeyValuePair.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyValuePair.h; sourceTree = "<group>"; };
7C98CDC723E7A9B80012F232 /* PlatformEnableCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformEnableCocoa.h; sourceTree = "<group>"; };
7C98CDC823E7AFC80012F232 /* PlatformEnableWinApple.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformEnableWinApple.h; sourceTree = "<group>"; };
7C98CDC923E7AFC80012F232 /* PlatformEnableWinCairo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformEnableWinCairo.h; sourceTree = "<group>"; };
7CBBA07319BB7FDC00BBF025 /* OSObjectPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSObjectPtr.h; sourceTree = "<group>"; };
7CD0D5A71D55322A000CC9E1 /* Variant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Variant.h; sourceTree = "<group>"; };
7CD4C26F1E2C82B900929470 /* StringConcatenateNumbers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringConcatenateNumbers.h; sourceTree = "<group>"; };
7CDD7FF7186D291E007433CD /* IteratorAdaptors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IteratorAdaptors.h; sourceTree = "<group>"; };
7CDD7FF9186D2A54007433CD /* IteratorRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IteratorRange.h; sourceTree = "<group>"; };
7CEAE5AC1EA6E10F00DB6890 /* NotFound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NotFound.h; sourceTree = "<group>"; };
7CEF23EB23D1257900F8B904 /* PlatformCallingConventions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformCallingConventions.h; sourceTree = "<group>"; };
7CFAF3C923D0AF1500D21BDD /* PlatformUse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformUse.h; sourceTree = "<group>"; };
7E29C33D15FFD79B00516D61 /* ObjCRuntimeExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjCRuntimeExtras.h; sourceTree = "<group>"; };
8134013615B092FD001FF0B8 /* Base64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Base64.cpp; sourceTree = "<group>"; };
8134013715B092FD001FF0B8 /* Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = "<group>"; };
@ -433,6 +490,7 @@
83F2BADE1CF9524E003E99C3 /* Function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Function.h; sourceTree = "<group>"; };
83FBA93119DF459700F30ADB /* TypeCasts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TypeCasts.h; sourceTree = "<group>"; };
86F46F5F1A2840EE00CCBF22 /* RefCounter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RefCounter.h; sourceTree = "<group>"; };
93241657243BC2E50032FAAE /* VectorCocoa.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VectorCocoa.h; sourceTree = "<group>"; };
933D63191FCB6AB90032ECD6 /* StringHasher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringHasher.h; sourceTree = "<group>"; };
9384B73E20DEA284005B73B2 /* CFXPCBridgeSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CFXPCBridgeSPI.h; sourceTree = "<group>"; };
93934BD218A1E8C300D0D6A1 /* StringViewCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = StringViewCocoa.mm; sourceTree = "<group>"; };
@ -446,6 +504,7 @@
974CFC8D16A4F327006D5404 /* WeakPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeakPtr.h; sourceTree = "<group>"; };
996B17841EBA441C007E10EB /* DebugUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DebugUtilities.h; sourceTree = "<group>"; };
9B67F3F12228D5310030DE9C /* WeakHashSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WeakHashSet.h; sourceTree = "<group>"; };
9B96E9B324FF77B8001756C3 /* CompactUniquePtrTuple.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CompactUniquePtrTuple.h; sourceTree = "<group>"; };
9BC70F04176C379D00101DEC /* AtomStringTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AtomStringTable.cpp; sourceTree = "<group>"; };
9BD8F40A176C2AD80002D865 /* AtomStringTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AtomStringTable.h; sourceTree = "<group>"; };
9C67C542589348E285B49699 /* IndexedContainerIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IndexedContainerIterator.h; sourceTree = "<group>"; };
@ -461,13 +520,11 @@
A331D96021F24A0A009F02AA /* FileSystemMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FileSystemMac.mm; sourceTree = "<group>"; };
A331D96621F24ABD009F02AA /* FileSystemPOSIX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileSystemPOSIX.cpp; sourceTree = "<group>"; };
A36E16F7216FF828008DD87E /* WTFSemaphore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WTFSemaphore.h; sourceTree = "<group>"; };
A3AB6E6A1F3E1AD6009C14B1 /* ValueToString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ValueToString.h; sourceTree = "<group>"; };
A3D273B921F2EE9100866971 /* MetadataSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MetadataSPI.h; sourceTree = "<group>"; };
A3E4DD911F3A803400DED0B4 /* TextStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextStream.cpp; sourceTree = "<group>"; };
A3E4DD921F3A803400DED0B4 /* TextStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextStream.h; sourceTree = "<group>"; };
A3EE5C3921FFAC5E00FABD61 /* OSAllocatorPOSIX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OSAllocatorPOSIX.cpp; sourceTree = "<group>"; };
A3EE5C3B21FFAC7C00FABD61 /* SchedulePairCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SchedulePairCF.cpp; sourceTree = "<group>"; };
A3EE5C3C21FFAC7D00FABD61 /* RunLoopTimerCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RunLoopTimerCF.cpp; sourceTree = "<group>"; };
A3EE5C3F21FFACA200FABD61 /* SchedulePairMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SchedulePairMac.mm; sourceTree = "<group>"; };
A5098AFF1C169E0700087797 /* SandboxSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SandboxSPI.h; sourceTree = "<group>"; };
A5098B011C16A4F900087797 /* SecuritySPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecuritySPI.h; sourceTree = "<group>"; };
@ -545,8 +602,6 @@
A8A472C6151A825A004123FF /* MainThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MainThread.cpp; sourceTree = "<group>"; };
A8A472C7151A825B004123FF /* MainThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainThread.h; sourceTree = "<group>"; };
A8A472C9151A825B004123FF /* MathExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MathExtras.h; sourceTree = "<group>"; };
A8A472CA151A825B004123FF /* MD5.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MD5.cpp; sourceTree = "<group>"; };
A8A472CB151A825B004123FF /* MD5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MD5.h; sourceTree = "<group>"; };
A8A472CC151A825B004123FF /* MessageQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageQueue.h; sourceTree = "<group>"; };
A8A472CD151A825B004123FF /* MetaAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MetaAllocator.cpp; sourceTree = "<group>"; };
A8A472CE151A825B004123FF /* MetaAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MetaAllocator.h; sourceTree = "<group>"; };
@ -557,7 +612,6 @@
A8A472D7151A825B004123FF /* OSAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSAllocator.h; sourceTree = "<group>"; };
A8A472DA151A825B004123FF /* OSRandomSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OSRandomSource.cpp; sourceTree = "<group>"; };
A8A472DB151A825B004123FF /* OSRandomSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSRandomSource.h; sourceTree = "<group>"; };
A8A472DF151A825B004123FF /* PackedIntVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PackedIntVector.h; sourceTree = "<group>"; };
A8A472E0151A825B004123FF /* PageAllocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageAllocation.h; sourceTree = "<group>"; };
A8A472E3151A825B004123FF /* PageBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageBlock.cpp; sourceTree = "<group>"; };
A8A472E4151A825B004123FF /* PageBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageBlock.h; sourceTree = "<group>"; };
@ -626,14 +680,13 @@
A8A47372151A825B004123FF /* VMTags.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VMTags.h; sourceTree = "<group>"; };
A8A4748B151A8264004123FF /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
A9A4727F151A825A004123FF /* DisallowCType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DisallowCType.h; sourceTree = "<group>"; };
AD653DA82006B6C200D820D7 /* DumbValueTraits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DumbValueTraits.h; sourceTree = "<group>"; };
AD653DA82006B6C200D820D7 /* RawValueTraits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RawValueTraits.h; sourceTree = "<group>"; };
AD7C434A1DD2A4A70026888B /* Expected.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Expected.h; sourceTree = "<group>"; };
AD89B6B51E6415080090707F /* MemoryPressureHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MemoryPressureHandler.cpp; sourceTree = "<group>"; };
AD89B6B61E6415080090707F /* MemoryPressureHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemoryPressureHandler.h; sourceTree = "<group>"; };
AD89B6B91E64150F0090707F /* MemoryPressureHandlerCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MemoryPressureHandlerCocoa.mm; sourceTree = "<group>"; };
ADF2CE641E39F106006889DB /* MemoryFootprint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemoryFootprint.h; sourceTree = "<group>"; };
ADF2CE651E39F106006889DB /* MemoryFootprintCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MemoryFootprintCocoa.cpp; sourceTree = "<group>"; };
B38FD7BC168953E80065C969 /* FeatureDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FeatureDefines.h; sourceTree = "<group>"; };
C2BCFC3E1F61D13000C9222C /* Language.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Language.cpp; sourceTree = "<group>"; };
C2BCFC3F1F61D13000C9222C /* Language.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Language.h; sourceTree = "<group>"; };
C2BCFC411F61D61600C9222C /* LanguageCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LanguageCF.cpp; sourceTree = "<group>"; };
@ -643,54 +696,79 @@
C6F050790D9C432A99085E75 /* ASCIILiteral.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ASCIILiteral.cpp; sourceTree = "<group>"; };
C8F597CA2A57417FBAB92FD6 /* RandomDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RandomDevice.cpp; sourceTree = "<group>"; };
CD00360D21501F7800F4ED4C /* StringToIntegerConversion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StringToIntegerConversion.h; sourceTree = "<group>"; };
CD48A87024C8A21600F5800C /* Observer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Observer.h; sourceTree = "<group>"; };
CD5497AA15857D0300B5BC30 /* MediaTime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaTime.cpp; sourceTree = "<group>"; };
CD5497AB15857D0300B5BC30 /* MediaTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaTime.h; sourceTree = "<group>"; };
CD6D9FCD1EEF3AD4008B0671 /* Algorithms.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Algorithms.h; sourceTree = "<group>"; };
CD7600FF1F90A3CA00026E26 /* UnsafePointer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UnsafePointer.h; sourceTree = "<group>"; };
CDCC9BC422382FCE00FFB51C /* AggregateLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AggregateLogger.h; path = wtf/AggregateLogger.h; sourceTree = SOURCE_ROOT; };
CE1132832370634900A8C83B /* AnsiColors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnsiColors.h; sourceTree = "<group>"; };
CE73E02419DCB7AB00580D5C /* XPCSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPCSPI.h; sourceTree = "<group>"; };
CEA072A7236FFA160018839C /* CrashReporterClientSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrashReporterClientSPI.h; sourceTree = "<group>"; };
CEA072A8236FFBF70018839C /* CrashReporter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CrashReporter.h; sourceTree = "<group>"; };
CEA072A9236FFBF70018839C /* CrashReporter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CrashReporter.cpp; sourceTree = "<group>"; };
DCEE21FA1CEA7538000C2396 /* CFBundleSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFBundleSPI.h; sourceTree = "<group>"; };
DCEE21FC1CEA7551000C2396 /* BlockObjCExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlockObjCExceptions.h; sourceTree = "<group>"; };
DCEE21FD1CEA7551000C2396 /* BlockObjCExceptions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BlockObjCExceptions.mm; sourceTree = "<group>"; };
DCEE22041CEB9869000C2396 /* BackwardsGraph.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BackwardsGraph.h; sourceTree = "<group>"; };
DEF7FE5F22581AC800C15129 /* TaggedArrayStoragePtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TaggedArrayStoragePtr.h; sourceTree = "<group>"; };
DFC610A724FB71B9006254C8 /* CodePointIterator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodePointIterator.h; sourceTree = "<group>"; };
E15556F318A0CC18006F48FB /* CryptographicUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptographicUtilities.cpp; sourceTree = "<group>"; };
E15556F418A0CC18006F48FB /* CryptographicUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptographicUtilities.h; sourceTree = "<group>"; };
E300E521203D645F00DA79BE /* UniqueArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UniqueArray.h; sourceTree = "<group>"; };
E311FB151F0A568B003C08DE /* ThreadGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ThreadGroup.cpp; sourceTree = "<group>"; };
E311FB161F0A568B003C08DE /* ThreadGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadGroup.h; sourceTree = "<group>"; };
E3149A3A228BDCAB00BFA6C7 /* ConcurrentBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConcurrentBuffer.cpp; sourceTree = "<group>"; };
E31BDE2822E913CC0029B105 /* MachVMSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachVMSPI.h; sourceTree = "<group>"; };
E3200AB41E9A536D003B59D2 /* PlatformRegisters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformRegisters.h; sourceTree = "<group>"; };
E32A207323C5902D0034A092 /* NakedRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NakedRef.h; sourceTree = "<group>"; };
E339C163244B4E8700359DA9 /* DataRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataRef.h; sourceTree = "<group>"; };
E33D5F871FBED66700BF625E /* RecursableLambda.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecursableLambda.h; sourceTree = "<group>"; };
E34CD0D022810A020020D299 /* Packed.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Packed.h; sourceTree = "<group>"; };
E360C7642127B85B00C90F0E /* UnalignedAccess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnalignedAccess.h; sourceTree = "<group>"; };
E360C7652127B85C00C90F0E /* Unexpected.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Unexpected.h; sourceTree = "<group>"; };
E36895CB23A445CD008DD4C8 /* PackedRef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PackedRef.h; sourceTree = "<group>"; };
E36895CC23A445EE008DD4C8 /* PackedRefPtr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PackedRefPtr.h; sourceTree = "<group>"; };
E38020DB2401C0930037CA9E /* CompactRefPtrTuple.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CompactRefPtrTuple.h; sourceTree = "<group>"; };
E388886D20C9095100E632BC /* WorkerPool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WorkerPool.cpp; sourceTree = "<group>"; };
E388886E20C9095100E632BC /* WorkerPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorkerPool.h; sourceTree = "<group>"; };
E38C41241EB4E04C0042957D /* CPUTimeCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CPUTimeCocoa.cpp; sourceTree = "<group>"; };
E38C41261EB4E0680042957D /* CPUTime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CPUTime.cpp; sourceTree = "<group>"; };
E38C41271EB4E0680042957D /* CPUTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPUTime.h; sourceTree = "<group>"; };
E38D6E261F5522E300A75CC4 /* StringBuilderJSON.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringBuilderJSON.cpp; sourceTree = "<group>"; };
E392FA2622E92BFF00ECDC73 /* ResourceUsageCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceUsageCocoa.cpp; sourceTree = "<group>"; };
E3A32BC21FC830E2007D7E76 /* JSValueMalloc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSValueMalloc.cpp; sourceTree = "<group>"; };
E3A32BC31FC830E2007D7E76 /* JSValueMalloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSValueMalloc.h; sourceTree = "<group>"; };
E3B8E41C24E7CE92003655D8 /* LineBreakIteratorPoolICU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LineBreakIteratorPoolICU.cpp; sourceTree = "<group>"; };
E3BE09A624A58545009DF2B4 /* ICUHelpers.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ICUHelpers.cpp; sourceTree = "<group>"; };
E3CF76902115D6BA0091DE48 /* CompactPointerTuple.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompactPointerTuple.h; sourceTree = "<group>"; };
E3E158251EADA53C004A079D /* SystemFree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SystemFree.h; sourceTree = "<group>"; };
E3E64F0B22813428001E55B4 /* Nonmovable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Nonmovable.h; sourceTree = "<group>"; };
E419F2E623AB9E2300B26129 /* VectorHash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VectorHash.h; sourceTree = "<group>"; };
E431CC4A21187ADB000C8A07 /* DispatchSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DispatchSPI.h; sourceTree = "<group>"; };
E4A0AD371A96245500536DF6 /* WorkQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WorkQueue.cpp; sourceTree = "<group>"; };
E4A0AD381A96245500536DF6 /* WorkQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorkQueue.h; sourceTree = "<group>"; };
E4A0AD3C1A96253C00536DF6 /* WorkQueueCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WorkQueueCocoa.cpp; sourceTree = "<group>"; };
EB61EDC62409CCC0001EFE36 /* SystemTracingCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SystemTracingCocoa.cpp; sourceTree = "<group>"; };
EB95E1EF161A72410089A2F5 /* ByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ByteOrder.h; sourceTree = "<group>"; };
EBFF67FC240D7D660078FF1B /* OSVariantSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSVariantSPI.h; sourceTree = "<group>"; };
EF7D6CD59D8642A8A0DA86AD /* StackTrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StackTrace.h; sourceTree = "<group>"; };
F72BBDB107FA424886178B9E /* SymbolImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SymbolImpl.cpp; sourceTree = "<group>"; };
FE05FAE61FDB214300093230 /* DumbPtrTraits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DumbPtrTraits.h; sourceTree = "<group>"; };
FE032AD02463E43B0012D7C7 /* WTFConfig.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WTFConfig.cpp; sourceTree = "<group>"; };
FE032AD12463E43B0012D7C7 /* WTFConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WTFConfig.h; sourceTree = "<group>"; };
FE05FAE61FDB214300093230 /* RawPtrTraits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RawPtrTraits.h; sourceTree = "<group>"; };
FE05FAFE1FE5007500093230 /* WTFAssertions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WTFAssertions.cpp; sourceTree = "<group>"; };
FE1D6D87237401CD007A5C26 /* StackCheck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StackCheck.h; sourceTree = "<group>"; };
FE1E2C392240C05400F6B729 /* PtrTag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PtrTag.cpp; sourceTree = "<group>"; };
FE1E2C41224187C600F6B729 /* PlatformRegisters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformRegisters.cpp; sourceTree = "<group>"; };
FE3842342325CC80009DD445 /* ResourceUsage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceUsage.h; sourceTree = "<group>"; };
FE7497E4208FFCAA0003565B /* PtrTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PtrTag.h; sourceTree = "<group>"; };
FE7497ED209163060003565B /* MetaAllocatorPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MetaAllocatorPtr.h; sourceTree = "<group>"; };
FE8225301B2A1E5B00BA68FD /* NakedPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NakedPtr.h; sourceTree = "<group>"; };
FE86A8741E59440200111BBF /* ForbidHeapAllocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ForbidHeapAllocation.h; sourceTree = "<group>"; };
FE8925AF1D00DAEC0046907E /* Indenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Indenter.h; sourceTree = "<group>"; };
FE97F6A8245CE5DD00C63FC6 /* StdIntExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StdIntExtras.h; sourceTree = "<group>"; };
FE996B5224A845AF001D2E63 /* FailureAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FailureAction.h; sourceTree = "<group>"; };
FEB6B035201BE0B600B958C1 /* PointerPreparations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PointerPreparations.h; sourceTree = "<group>"; };
FEDACD3B1630F83F00C69634 /* StackStats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StackStats.cpp; sourceTree = "<group>"; };
FEDACD3C1630F83F00C69634 /* StackStats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StackStats.h; sourceTree = "<group>"; };
@ -751,7 +829,6 @@
A331D95C21F249E4009F02AA /* FileSystemCF.cpp */,
C2BCFC411F61D61600C9222C /* LanguageCF.cpp */,
2CDED0EE18115C38004DBA70 /* RunLoopCF.cpp */,
A3EE5C3C21FFAC7D00FABD61 /* RunLoopTimerCF.cpp */,
A3EE5C3B21FFAC7C00FABD61 /* SchedulePairCF.cpp */,
1AFDE647195201C300C48FFA /* TypeCastsCF.h */,
5C1F0594216437B30039302C /* URLCF.cpp */,
@ -868,6 +945,7 @@
A8A47348151A825B004123FF /* unicode */,
CDCC9BC422382FCE00FFB51C /* AggregateLogger.h */,
CD6D9FCD1EEF3AD4008B0671 /* Algorithms.h */,
CE1132832370634900A8C83B /* AnsiColors.h */,
4427C5A921F6D6C300A612A4 /* ASCIICType.cpp */,
A8A4725A151A825A004123FF /* ASCIICType.h */,
A8A4725B151A825A004123FF /* Assertions.cpp */,
@ -877,6 +955,7 @@
0F43D8EF1DB5ADDC00108FB6 /* AutomaticThread.cpp */,
0F43D8F01DB5ADDC00108FB6 /* AutomaticThread.h */,
DCEE22041CEB9869000C2396 /* BackwardsGraph.h */,
0FEBA64120CF37100074941C /* Bag.cpp */,
0FB14E18180FA218009B6B4D /* Bag.h */,
0FB14E1A1810E1DA009B6B4D /* BagToHashMap.h */,
A8A4725F151A825A004123FF /* Bitmap.h */,
@ -888,6 +967,7 @@
A8A47265151A825A004123FF /* BloomFilter.h */,
0FB399B820AF5A580017E213 /* BooleanLattice.h */,
0F93274A1C17F4B700CF6564 /* Box.h */,
0F93274A1C17F4B700CF6566 /* BoxPtr.h */,
7C3F72391D78811900674E26 /* Brigand.h */,
0F4570441BE834410062A629 /* BubbleSort.h */,
A8A47267151A825A004123FF /* BumpPointerAllocator.h */,
@ -901,10 +981,13 @@
0F66B2811DC97BAB004A1D3F /* ClockType.h */,
0FC4EDE51696149600F65041 /* CommaPrinter.h */,
E3CF76902115D6BA0091DE48 /* CompactPointerTuple.h */,
E38020DB2401C0930037CA9E /* CompactRefPtrTuple.h */,
9B96E9B324FF77B8001756C3 /* CompactUniquePtrTuple.h */,
0F8F2B8F172E00F0007DBDA5 /* CompilationThread.cpp */,
0F8F2B90172E00F0007DBDA5 /* CompilationThread.h */,
A8A47270151A825A004123FF /* Compiler.h */,
46BA9EAB1F4CD61E009A2BBC /* CompletionHandler.h */,
E3149A3A228BDCAB00BFA6C7 /* ConcurrentBuffer.cpp */,
0FB467821FDE282B003FCB09 /* ConcurrentBuffer.h */,
0F30CB581FCDF133004B5323 /* ConcurrentPtrHashSet.cpp */,
0F30CB591FCDF133004B5323 /* ConcurrentPtrHashSet.h */,
@ -927,8 +1010,11 @@
A8A47275151A825A004123FF /* CurrentTime.cpp */,
A8A47277151A825A004123FF /* DataLog.cpp */,
A8A47278151A825A004123FF /* DataLog.h */,
E339C163244B4E8700359DA9 /* DataRef.h */,
A8A47279151A825A004123FF /* DateMath.cpp */,
A8A4727A151A825A004123FF /* DateMath.h */,
0F95B63220CB4B7700479635 /* DebugHeap.cpp */,
0F95B63120CB4B7700479635 /* DebugHeap.h */,
996B17841EBA441C007E10EB /* DebugUtilities.h */,
0F2B66A417B6B4F700A7AE3F /* DeferrableRefCounted.h */,
A8A4727E151A825A004123FF /* Deque.h */,
@ -937,17 +1023,16 @@
A8A47280151A825A004123FF /* DoublyLinkedList.h */,
A8A47297151A825A004123FF /* dtoa.cpp */,
A8A47298151A825A004123FF /* dtoa.h */,
FE05FAE61FDB214300093230 /* DumbPtrTraits.h */,
AD653DA82006B6C200D820D7 /* DumbValueTraits.h */,
5338EBA423AB04D100382662 /* EnumClassOperatorOverloads.h */,
1AEA88E11D6BBCF400E5AD64 /* EnumTraits.h */,
AD7C434A1DD2A4A70026888B /* Expected.h */,
A8A4729F151A825A004123FF /* ExportMacros.h */,
FE996B5224A845AF001D2E63 /* FailureAction.h */,
0F7C5FB51D885CF20044F5E2 /* FastBitVector.cpp */,
0FD81AC4154FB22E00983E72 /* FastBitVector.h */,
A8A472A1151A825A004123FF /* FastMalloc.cpp */,
A8A472A2151A825A004123FF /* FastMalloc.h */,
0F79C7C31E73511800EB34D1 /* FastTLS.h */,
B38FD7BC168953E80065C969 /* FeatureDefines.h */,
A331D95821F24978009F02AA /* FileMetadata.h */,
0F9D335B165DBA73005AD387 /* FilePrintStream.cpp */,
0F9D335C165DBA73005AD387 /* FilePrintStream.h */,
@ -1027,8 +1112,6 @@
1A233C7C17DAA6E300A93ACF /* MallocPtr.h */,
304CA4E41375437EBE931D03 /* Markable.h */,
A8A472C9151A825B004123FF /* MathExtras.h */,
A8A472CA151A825B004123FF /* MD5.cpp */,
A8A472CB151A825B004123FF /* MD5.h */,
CD5497AA15857D0300B5BC30 /* MediaTime.cpp */,
CD5497AB15857D0300B5BC30 /* MediaTime.h */,
ADF2CE641E39F106006889DB /* MemoryFootprint.h */,
@ -1042,6 +1125,7 @@
0F66B2821DC97BAB004A1D3F /* MonotonicTime.cpp */,
0F66B2831DC97BAB004A1D3F /* MonotonicTime.h */,
FE8225301B2A1E5B00BA68FD /* NakedPtr.h */,
E32A207323C5902D0034A092 /* NakedRef.h */,
0F5BF1651F2317830029D91D /* NaturalLoops.h */,
1A3F6BE6174ADA2100B2EEA7 /* NeverDestroyed.h */,
0F0D85B317234CB100338210 /* NoLock.h */,
@ -1054,15 +1138,20 @@
7E29C33D15FFD79B00516D61 /* ObjCRuntimeExtras.h */,
8348BA0D21FBC0D400FD3054 /* ObjectIdentifier.cpp */,
83A8AC3D1FABBE94002064AC /* ObjectIdentifier.h */,
CD48A87024C8A21600F5800C /* Observer.h */,
1AFDE6521953B23D00C48FFA /* Optional.h */,
1A4656181C7FC68E00F5920F /* OptionSet.h */,
275DFB6B238BDF72001230E2 /* OptionSetHash.h */,
0F9495831C571CC900413A48 /* OrderMaker.h */,
A8A472D7151A825B004123FF /* OSAllocator.h */,
53FC70CF23FB950C005B1990 /* OSLogPrintStream.cpp */,
53FC70CE23FB950C005B1990 /* OSLogPrintStream.h */,
7CBBA07319BB7FDC00BBF025 /* OSObjectPtr.h */,
A8A472DA151A825B004123FF /* OSRandomSource.cpp */,
A8A472DB151A825B004123FF /* OSRandomSource.h */,
E34CD0D022810A020020D299 /* Packed.h */,
A8A472DF151A825B004123FF /* PackedIntVector.h */,
E36895CB23A445CD008DD4C8 /* PackedRef.h */,
E36895CC23A445EE008DD4C8 /* PackedRefPtr.h */,
A8A472E0151A825B004123FF /* PageAllocation.h */,
A8A472E3151A825B004123FF /* PageBlock.cpp */,
A8A472E4151A825B004123FF /* PageBlock.h */,
@ -1075,8 +1164,18 @@
0F824A641B7443A0002E345D /* ParkingLot.cpp */,
0F824A651B7443A0002E345D /* ParkingLot.h */,
A876DBD7151816E500DADB95 /* Platform.h */,
7CEF23EB23D1257900F8B904 /* PlatformCallingConventions.h */,
7C42307223CE2D8A006E54D0 /* PlatformCPU.h */,
7C42307123CE2D8A006E54D0 /* PlatformEnable.h */,
7C98CDC723E7A9B80012F232 /* PlatformEnableCocoa.h */,
7C98CDC823E7AFC80012F232 /* PlatformEnableWinApple.h */,
7C98CDC923E7AFC80012F232 /* PlatformEnableWinCairo.h */,
7C3A45D023CFA883007DE3A6 /* PlatformHave.h */,
7C42307423CEB187006E54D0 /* PlatformLegacy.h */,
7C42307323CE2D8B006E54D0 /* PlatformOS.h */,
FE1E2C41224187C600F6B729 /* PlatformRegisters.cpp */,
E3200AB41E9A536D003B59D2 /* PlatformRegisters.h */,
7CFAF3C923D0AF1500D21BDD /* PlatformUse.h */,
0FF860941BCCBD740045127F /* PointerComparison.h */,
FEB6B035201BE0B600B958C1 /* PointerPreparations.h */,
0F9D335D165DBA73005AD387 /* PrintStream.cpp */,
@ -1097,28 +1196,33 @@
0F2AC5601E89F70C0001EE3F /* Range.h */,
0F725CAB1C50461600AD943A /* RangeSet.h */,
0F87105916643F190090B0AD /* RawPointer.h */,
FE05FAE61FDB214300093230 /* RawPtrTraits.h */,
AD653DA82006B6C200D820D7 /* RawValueTraits.h */,
0FEC3C5C1F368A9700F59B6C /* ReadWriteLock.cpp */,
0FEC3C5D1F368A9700F59B6C /* ReadWriteLock.h */,
E33D5F871FBED66700BF625E /* RecursableLambda.h */,
0FDE87F61DFD07CC0064C390 /* RecursiveLockAdapter.h */,
A8A472FE151A825B004123FF /* RedBlackTree.h */,
26299B6D17A9E5B800ADEBE5 /* Ref.h */,
46BEB6E922FFDDD500269867 /* RefCounted.cpp */,
A8A472FF151A825B004123FF /* RefCounted.h */,
0FA6F39020CC61EB00A03DCD /* RefCountedArray.cpp */,
A8A47300151A825B004123FF /* RefCountedArray.h */,
A8A47301151A825B004123FF /* RefCountedLeakCounter.cpp */,
A8A47302151A825B004123FF /* RefCountedLeakCounter.h */,
86F46F5F1A2840EE00CCBF22 /* RefCounter.h */,
A8A47303151A825B004123FF /* RefPtr.h */,
FE3842342325CC80009DD445 /* ResourceUsage.h */,
A8A47305151A825B004123FF /* RetainPtr.h */,
2CDED0F118115C85004DBA70 /* RunLoop.cpp */,
2CDED0F218115C85004DBA70 /* RunLoop.h */,
1469419016EAAF6D0024E146 /* RunLoopTimer.h */,
14F3B0F615E45E4600210069 /* SaturatedArithmetic.h */,
1469419416EAAFF80024E146 /* SchedulePair.h */,
1A3524AA1D63A2FF0031729B /* Scope.h */,
0FEC84B01BDACD390080FF74 /* ScopedLambda.h */,
0F66B2841DC97BAB004A1D3F /* Seconds.cpp */,
0F66B2851DC97BAB004A1D3F /* Seconds.h */,
0FA6F38E20CC580E00A03DCD /* SegmentedVector.cpp */,
A8A47306151A825B004123FF /* SegmentedVector.h */,
A8A47307151A825B004123FF /* SentinelLinkedList.h */,
A8A4731A151A825B004123FF /* SetForScope.h */,
@ -1132,12 +1236,14 @@
A748744F17A0BDAE00FA04CB /* SixCharacterHash.cpp */,
A748745017A0BDAE00FA04CB /* SixCharacterHash.h */,
A8A4730C151A825B004123FF /* SizeLimits.cpp */,
0FA6F39220CC73A200A03DCD /* SmallPtrSet.cpp */,
7936D6A91C99F8AE000D1AED /* SmallPtrSet.h */,
A30D412D1F0DE13F00B71954 /* SoftLinking.h */,
79038E05224B05A7004C0738 /* SpanningTree.h */,
A8A4730D151A825B004123FF /* Spectrum.h */,
A8A4730E151A825B004123FF /* StackBounds.cpp */,
A8A4730F151A825B004123FF /* StackBounds.h */,
FE1D6D87237401CD007A5C26 /* StackCheck.h */,
FEEA4DF8216D7BE400AC0602 /* StackPointer.cpp */,
FEEA4DF7216D608C00AC0602 /* StackPointer.h */,
0F9DAA041FD1C37B0079C5B2 /* StackShot.h */,
@ -1146,6 +1252,9 @@
FEDACD3C1630F83F00C69634 /* StackStats.h */,
313EDEC9778E49C9BEA91CFC /* StackTrace.cpp */,
EF7D6CD59D8642A8A0DA86AD /* StackTrace.h */,
7C595FFD252A96E000E42168 /* StdFilesystem.cpp */,
7C595FFC252A96E000E42168 /* StdFilesystem.h */,
FE97F6A8245CE5DD00C63FC6 /* StdIntExtras.h */,
A8A47311151A825B004123FF /* StdLibExtras.h */,
FF0A436588954F3CB07DBECA /* StdList.h */,
391BD6BA4D164FD294F9A93D /* StdMap.h */,
@ -1170,6 +1279,7 @@
5311BD5B1EA822F900525281 /* ThreadMessage.cpp */,
5311BD591EA81A9600525281 /* ThreadMessage.h */,
A8A4733E151A825B004123FF /* ThreadSafeRefCounted.h */,
4468567225094FE8008CCA05 /* ThreadSanitizerSupport.h */,
A8A4733F151A825B004123FF /* ThreadSpecific.h */,
0F66B2861DC97BAB004A1D3F /* TimeWithDynamicClockType.cpp */,
0F66B2871DC97BAB004A1D3F /* TimeWithDynamicClockType.h */,
@ -1177,11 +1287,14 @@
0F7075F31FBF537A00489AF0 /* TimingScope.h */,
553071C91C40427200384898 /* TinyLRUCache.h */,
0FED67B51B22D4D80066CE15 /* TinyPtrSet.h */,
521CC6B324A277C2004377D6 /* TranslatedProcess.cpp */,
2D1F2F462498F73300C63A83 /* TranslatedProcess.h */,
149EF16216BBFE0D000A4331 /* TriState.h */,
83FBA93119DF459700F30ADB /* TypeCasts.h */,
E360C7642127B85B00C90F0E /* UnalignedAccess.h */,
E360C7652127B85C00C90F0E /* Unexpected.h */,
A8A4735C151A825B004123FF /* UnionFind.h */,
0FA6F39420CCACE900A03DCD /* UniqueArray.cpp */,
E300E521203D645F00DA79BE /* UniqueArray.h */,
5C7C88D31D0A3A0A009D2F6D /* UniqueRef.h */,
CD7600FF1F90A3CA00026E26 /* UnsafePointer.h */,
@ -1197,7 +1310,9 @@
7AFEC6AE1EB22AC600DADE36 /* UUID.h */,
A8A4736F151A825B004123FF /* ValueCheck.h */,
7CD0D5A71D55322A000CC9E1 /* Variant.h */,
0F95B63420CB53C100479635 /* Vector.cpp */,
A8A47370151A825B004123FF /* Vector.h */,
E419F2E623AB9E2300B26129 /* VectorHash.h */,
A8A47371151A825B004123FF /* VectorTraits.h */,
A8A47372151A825B004123FF /* VMTags.h */,
0F66B2881DC97BAB004A1D3F /* WallTime.cpp */,
@ -1213,6 +1328,8 @@
E4A0AD371A96245500536DF6 /* WorkQueue.cpp */,
E4A0AD381A96245500536DF6 /* WorkQueue.h */,
FE05FAFE1FE5007500093230 /* WTFAssertions.cpp */,
FE032AD02463E43B0012D7C7 /* WTFConfig.cpp */,
FE032AD12463E43B0012D7C7 /* WTFConfig.h */,
A36E16F7216FF828008DD87E /* WTFSemaphore.h */,
);
path = wtf;
@ -1250,8 +1367,6 @@
A8A472C4151A825A004123FF /* mac */ = {
isa = PBXGroup;
children = (
1A428B8B1C8F89DD0051E9EB /* AppKitCompatibilityDeclarations.h */,
1ACADD821884480100D8B71D /* DeprecatedSymbolsUsedBySafari.mm */,
A331D96021F24A0A009F02AA /* FileSystemMac.mm */,
53534F291EC0E10E00141B2F /* MachExceptions.defs */,
A3EE5C3F21FFACA200FABD61 /* SchedulePairMac.mm */,
@ -1277,6 +1392,7 @@
9BD8F40A176C2AD80002D865 /* AtomStringTable.h */,
8134013615B092FD001FF0B8 /* Base64.cpp */,
8134013715B092FD001FF0B8 /* Base64.h */,
DFC610A724FB71B9006254C8 /* CodePointIterator.h */,
0F8F2B9B172F2594007DBDA5 /* ConversionMode.h */,
A8A47321151A825B004123FF /* CString.cpp */,
A8A47322151A825B004123FF /* CString.h */,
@ -1284,10 +1400,12 @@
50DE35F4215BB01500B979C7 /* ExternalStringImpl.h */,
26147B0815DDCCDC00DDB907 /* IntegerToStringConversion.h */,
93AC91A718942FC400244939 /* LChar.h */,
E3B8E41C24E7CE92003655D8 /* LineBreakIteratorPoolICU.cpp */,
1C181C811D30797C00F5FA16 /* LineBreakIteratorPoolICU.h */,
C2BCFC531F621F3F00C9222C /* LineEnding.cpp */,
C2BCFC541F621F3F00C9222C /* LineEnding.h */,
14E785E71DFB330100209BD1 /* OrdinalNumber.h */,
0F95B63620CB5EFD00479635 /* StringBuffer.cpp */,
A8A47323151A825B004123FF /* StringBuffer.h */,
A8A47324151A825B004123FF /* StringBuilder.cpp */,
A8A47325151A825B004123FF /* StringBuilder.h */,
@ -1300,6 +1418,7 @@
A8A47328151A825B004123FF /* StringImpl.cpp */,
A8A47329151A825B004123FF /* StringImpl.h */,
A8A4732A151A825B004123FF /* StringOperators.h */,
7C3B06E824A116E600FD26C7 /* StringParsingBuffer.h */,
CD00360D21501F7800F4ED4C /* StringToIntegerConversion.h */,
93F1993D19D7958D00C2390B /* StringView.cpp */,
1A6EB1DF187D0BD30030126F /* StringView.h */,
@ -1315,7 +1434,6 @@
A3E4DD921F3A803400DED0B4 /* TextStream.h */,
70ECA60C1B02426800449739 /* UniquedStringImpl.h */,
FEF295BF20B49DCB00CF283A /* UTF8ConversionError.h */,
A3AB6E6A1F3E1AD6009C14B1 /* ValueToString.h */,
A8A4732D151A825B004123FF /* WTFString.cpp */,
A8A4732E151A825B004123FF /* WTFString.h */,
);
@ -1350,6 +1468,8 @@
isa = PBXGroup;
children = (
A8A47350151A825B004123FF /* CollatorICU.cpp */,
E3BE09A624A58545009DF2B4 /* ICUHelpers.cpp */,
52B228C12458DC8200753D91 /* ICUHelpers.h */,
);
path = icu;
sourceTree = "<group>";
@ -1358,7 +1478,11 @@
isa = PBXGroup;
children = (
9384B73E20DEA284005B73B2 /* CFXPCBridgeSPI.h */,
CEA072A7236FFA160018839C /* CrashReporterClientSPI.h */,
E31BDE2822E913CC0029B105 /* MachVMSPI.h */,
1C503BE423AADEEA0072E66B /* NSLocaleSPI.h */,
93D191CF20CAECE800C51B8E /* objcSPI.h */,
2DA442FC24904CA000C9C59D /* OSLogSPI.h */,
A5098B011C16A4F900087797 /* SecuritySPI.h */,
);
path = cocoa;
@ -1370,6 +1494,8 @@
14933E21228C22DF00F79E46 /* DataVaultSPI.h */,
E431CC4A21187ADB000C8A07 /* DispatchSPI.h */,
93DDE9311CDC052D00FD3491 /* dyldSPI.h */,
EBFF67FC240D7D660078FF1B /* OSVariantSPI.h */,
6593CDE922FA4A520087714B /* ProcessMemoryFootprint.h */,
A5098AFF1C169E0700087797 /* SandboxSPI.h */,
CE73E02419DCB7AB00580D5C /* XPCSPI.h */,
);
@ -1391,6 +1517,7 @@
isa = PBXGroup;
children = (
DCEE21FA1CEA7538000C2396 /* CFBundleSPI.h */,
147628E5255B3F6F00F093B9 /* CFRunLoopSPI.h */,
1CCDB1511E566BC5006C73C0 /* CFStringSPI.h */,
);
path = cf;
@ -1415,17 +1542,27 @@
children = (
1469419B16EAB10A0024E146 /* AutodrainedPool.cpp */,
E38C41241EB4E04C0042957D /* CPUTimeCocoa.cpp */,
CEA072A9236FFBF70018839C /* CrashReporter.cpp */,
CEA072A8236FFBF70018839C /* CrashReporter.h */,
143DDE9720C8BE99007F76FA /* Entitlements.h */,
143DDE9520C8BC37007F76FA /* Entitlements.mm */,
A331D95E21F249F6009F02AA /* FileSystemCocoa.mm */,
1C503BE523AAE0AE0072E66B /* LanguageCocoa.mm */,
46BAA9C8258AD5A500795877 /* MachSemaphore.cpp */,
46BAA9C9258AD5A500795877 /* MachSemaphore.h */,
7A6EBA3320746C34004F9C44 /* MachSendRight.cpp */,
A8A472C5151A825A004123FF /* MainThreadCocoa.mm */,
ADF2CE651E39F106006889DB /* MemoryFootprintCocoa.cpp */,
AD89B6B91E64150F0090707F /* MemoryPressureHandlerCocoa.mm */,
5CC0EE872162BC2200A1A842 /* NSURLExtras.h */,
5CC0EE882162BC2200A1A842 /* NSURLExtras.mm */,
E392FA2622E92BFF00ECDC73 /* ResourceUsageCocoa.cpp */,
1CA85CA8241B0B260071C2F5 /* RuntimeApplicationChecksCocoa.cpp */,
1CA85CA7241B0B110071C2F5 /* RuntimeApplicationChecksCocoa.h */,
A30D412C1F0DE0BA00B71954 /* SoftLinking.h */,
EB61EDC62409CCC0001EFE36 /* SystemTracingCocoa.cpp */,
5CC0EE862162BC2200A1A842 /* URLCocoa.mm */,
93241657243BC2E50032FAAE /* VectorCocoa.h */,
E4A0AD3C1A96253C00536DF6 /* WorkQueueCocoa.cpp */,
);
path = cocoa;
@ -1458,7 +1595,7 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0700;
LastUpgradeCheck = 1000;
LastUpgradeCheck = 1140;
};
buildConfigurationList = 5D247B5C14689B8600E78B76 /* Build configuration list for PBXProject "WTF" */;
compatibilityVersion = "Xcode 3.2";
@ -1466,6 +1603,7 @@
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 5D247B5714689B8600E78B76;
productRefGroup = 5D247B6314689B8600E78B76 /* Products */;
@ -1491,7 +1629,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "if [[ \"${DEPLOYMENT_LOCATION}\" == \"NO\" ]]; then\n PRIVATE_HEADERS_PATH=\"${TARGET_BUILD_DIR%/}/${PRIVATE_HEADERS_FOLDER_PATH}\"\n ICU_PRIVATE_HEADERS_PATH=\"${TARGET_BUILD_DIR%/}/${ICU_PRIVATE_HEADERS_FOLDER_PATH}\"\nelse\n PRIVATE_HEADERS_PATH=\"${DSTROOT}/${PRIVATE_HEADERS_FOLDER_PATH}\"\n ICU_PRIVATE_HEADERS_PATH=\"${DSTROOT}/${ICU_PRIVATE_HEADERS_FOLDER_PATH}\"\nfi;\n\nmkdir -p \"${PRIVATE_HEADERS_PATH}\"\nrsync -av --no-owner --no-group --prune-empty-dirs --exclude \".svn\" --exclude \"usr\" --exclude \"DerivedSources\" --include \"*/\" --include \"*.h\" --exclude \"*\" \"${SRCROOT}/wtf/\" \"${PRIVATE_HEADERS_PATH}\"\n\nrsync -av --no-owner --no-group --prune-empty-dirs --exclude \".svn\" --exclude \"usr\" --exclude \"DerivedSources\" --include \"*/\" --include \"*.rb\" --exclude \"*\" \"${SRCROOT}/Scripts\" \"${PRIVATE_HEADERS_PATH}\"\n\nif [[ \"${USE_INTERNAL_SDK}\" != \"YES\" ]]; then\nmkdir -p \"${ICU_PRIVATE_HEADERS_PATH}\"\nrsync -av --no-owner --no-group --prune-empty-dirs --exclude \".svn\" --exclude \"usr\" --exclude \"DerivedSources\" --include \"*/\" --include \"*.h\" --exclude \"*\" \"${SRCROOT}/icu/\" \"${ICU_PRIVATE_HEADERS_PATH}\"\nfi";
shellScript = "if [[ \"${DEPLOYMENT_LOCATION}\" == \"NO\" ]]; then\n PRIVATE_HEADERS_PATH=\"${TARGET_BUILD_DIR%/}/${PRIVATE_HEADERS_FOLDER_PATH}\"\n ICU_PRIVATE_HEADERS_PATH=\"${TARGET_BUILD_DIR%/}/${ICU_PRIVATE_HEADERS_FOLDER_PATH}\"\nelse\n PRIVATE_HEADERS_PATH=\"${DSTROOT}/${PRIVATE_HEADERS_FOLDER_PATH}\"\n ICU_PRIVATE_HEADERS_PATH=\"${DSTROOT}/${ICU_PRIVATE_HEADERS_FOLDER_PATH}\"\nfi;\n\necho \"${PRIVATE_HEADERS_PATH}\"\nmkdir -p \"${PRIVATE_HEADERS_PATH}\"\nrsync -av --no-owner --no-group --prune-empty-dirs --exclude \".svn\" --exclude \"usr\" --exclude \"DerivedSources\" --include \"*/\" --include \"*.h\" --exclude \"*\" \"${SRCROOT}/wtf/\" \"${PRIVATE_HEADERS_PATH}\"\n\nrsync -av --no-owner --no-group --prune-empty-dirs --exclude \".svn\" --exclude \"usr\" --exclude \"DerivedSources\" --include \"*/\" --include \"*.rb\" --include=\"*/*.yaml\" --exclude \"*\" \"${SRCROOT}/Scripts\" \"${PRIVATE_HEADERS_PATH}\"\n\nif [[ \"${USE_INTERNAL_SDK}\" != \"YES\" ]]; then\nmkdir -p \"${ICU_PRIVATE_HEADERS_PATH}\"\nrsync -av --no-owner --no-group --prune-empty-dirs --exclude \".svn\" --exclude \"usr\" --exclude \"DerivedSources\" --include \"*/\" --include \"*.h\" --exclude \"*\" \"${SRCROOT}/icu/\" \"${ICU_PRIVATE_HEADERS_PATH}\"\nfi\n";
};
/* End PBXShellScriptBuildPhase section */
@ -1509,6 +1647,7 @@
9BC70F05176C379D00101DEC /* AtomStringTable.cpp in Sources */,
1469419D16EAB10A0024E146 /* AutodrainedPool.cpp in Sources */,
0F43D8F11DB5ADDC00108FB6 /* AutomaticThread.cpp in Sources */,
E3149A37228BB42200BFA6C7 /* Bag.cpp in Sources */,
8134013815B092FD001FF0B8 /* Base64.cpp in Sources */,
A8A473A8151A825B004123FF /* bignum-dtoa.cc in Sources */,
A8A473AA151A825B004123FF /* bignum.cc in Sources */,
@ -1521,10 +1660,12 @@
A8A47460151A825B004123FF /* CollatorDefault.cpp in Sources */,
A8A47463151A825B004123FF /* CollatorICU.cpp in Sources */,
0F8F2B92172E0103007DBDA5 /* CompilationThread.cpp in Sources */,
E3149A3B228BDCAC00BFA6C7 /* ConcurrentBuffer.cpp in Sources */,
0F30CB5A1FCDF134004B5323 /* ConcurrentPtrHashSet.cpp in Sources */,
0F8E85DB1FD485B000691889 /* CountingLock.cpp in Sources */,
E38C41281EB4E0680042957D /* CPUTime.cpp in Sources */,
E38C41251EB4E04C0042957D /* CPUTimeCocoa.cpp in Sources */,
CEA072AA236FFBF70018839C /* CrashReporter.cpp in Sources */,
515F794E1CFC9F4A00CCED93 /* CrossThreadCopier.cpp in Sources */,
517F82D71FD22F3000DA3DEA /* CrossThreadTaskHandler.cpp in Sources */,
A8A4739A151A825B004123FF /* CryptographicallyRandomNumber.cpp in Sources */,
@ -1533,7 +1674,7 @@
A8A4739C151A825B004123FF /* CurrentTime.cpp in Sources */,
A8A4739E151A825B004123FF /* DataLog.cpp in Sources */,
A8A473A0151A825B004123FF /* DateMath.cpp in Sources */,
1ACADD841884480100D8B71D /* DeprecatedSymbolsUsedBySafari.mm in Sources */,
0F95B63320CB4B7700479635 /* DebugHeap.cpp in Sources */,
A8A473AE151A825B004123FF /* diy-fp.cc in Sources */,
A8A473B0151A825B004123FF /* double-conversion.cc in Sources */,
A8A473BA151A825B004123FF /* dtoa.cpp in Sources */,
@ -1555,19 +1696,22 @@
2CCD892A15C0390200285083 /* GregorianDateTime.cpp in Sources */,
A8A473D8151A825B004123FF /* HashTable.cpp in Sources */,
93B5B44E2213D616004B7AA7 /* HexNumber.cpp in Sources */,
E3BE09A724A5854D009DF2B4 /* ICUHelpers.cpp in Sources */,
7A05093F1FB9DCC500B33FB8 /* JSONValues.cpp in Sources */,
E3A32BC41FC830E2007D7E76 /* JSValueMalloc.cpp in Sources */,
C2BCFC401F61D13000C9222C /* Language.cpp in Sources */,
C2BCFC421F61D61600C9222C /* LanguageCF.cpp in Sources */,
1C503BE623AAE0AE0072E66B /* LanguageCocoa.mm in Sources */,
E3B8E41D24E7CE92003655D8 /* LineBreakIteratorPoolICU.cpp in Sources */,
C2BCFC551F621F3F00C9222C /* LineEnding.cpp in Sources */,
0FE1646A1B6FFC9600400E7C /* Lock.cpp in Sources */,
0F60F32F1DFCBD1B00416D6C /* LockedPrintStream.cpp in Sources */,
93B5B45122171EEA004B7AA7 /* Logger.cpp in Sources */,
53534F2A1EC0E10E00141B2F /* MachExceptions.defs in Sources */,
46CB6B3D258AD93F006333B3 /* MachSemaphore.cpp in Sources */,
7A6EBA3420746C34004F9C44 /* MachSendRight.cpp in Sources */,
A8A473E5151A825B004123FF /* MainThread.cpp in Sources */,
A8A473E4151A825B004123FF /* MainThreadCocoa.mm in Sources */,
A8A473E9151A825B004123FF /* MD5.cpp in Sources */,
CD5497AC15857D0300B5BC30 /* MediaTime.cpp in Sources */,
ADF2CE671E39F106006889DB /* MemoryFootprintCocoa.cpp in Sources */,
AD89B6B71E6415080090707F /* MemoryPressureHandler.cpp in Sources */,
@ -1578,6 +1722,7 @@
A8A473F4151A825B004123FF /* NumberOfCores.cpp in Sources */,
8348BA0E21FBC0D500FD3054 /* ObjectIdentifier.cpp in Sources */,
A3EE5C3A21FFAC5F00FABD61 /* OSAllocatorPOSIX.cpp in Sources */,
53FC70D023FB950C005B1990 /* OSLogPrintStream.cpp in Sources */,
A8A473F9151A825B004123FF /* OSRandomSource.cpp in Sources */,
A8A47402151A825B004123FF /* PageBlock.cpp in Sources */,
0FFF19DC1BB334EB00886D91 /* ParallelHelperPool.cpp in Sources */,
@ -1593,21 +1738,28 @@
A3B725EC987446AD93F1A440 /* RandomDevice.cpp in Sources */,
A8A47414151A825B004123FF /* RandomNumber.cpp in Sources */,
0FEC3C5E1F368A9700F59B6C /* ReadWriteLock.cpp in Sources */,
46BEB6EB22FFE24900269867 /* RefCounted.cpp in Sources */,
E3149A38228BB42C00BFA6C7 /* RefCountedArray.cpp in Sources */,
A8A4741A151A825B004123FF /* RefCountedLeakCounter.cpp in Sources */,
E392FA2722E92BFF00ECDC73 /* ResourceUsageCocoa.cpp in Sources */,
2CDED0F318115C85004DBA70 /* RunLoop.cpp in Sources */,
2CDED0EF18115C38004DBA70 /* RunLoopCF.cpp in Sources */,
A3EE5C3E21FFAC7D00FABD61 /* RunLoopTimerCF.cpp in Sources */,
1CA85CA9241B0B260071C2F5 /* RuntimeApplicationChecksCocoa.cpp in Sources */,
A3EE5C3D21FFAC7D00FABD61 /* SchedulePairCF.cpp in Sources */,
A3EE5C4021FFACA200FABD61 /* SchedulePairMac.mm in Sources */,
0F66B28E1DC97BAB004A1D3F /* Seconds.cpp in Sources */,
0FA6F38F20CC580F00A03DCD /* SegmentedVector.cpp in Sources */,
A8A47421151A825B004123FF /* SHA1.cpp in Sources */,
5311BD531EA71CAD00525281 /* Signals.cpp in Sources */,
A748745217A0BDAE00FA04CB /* SixCharacterHash.cpp in Sources */,
A8A47425151A825B004123FF /* SizeLimits.cpp in Sources */,
0FA6F39320CC73A300A03DCD /* SmallPtrSet.cpp in Sources */,
A8A47427151A825B004123FF /* StackBounds.cpp in Sources */,
FEEA4DF9216D7BE400AC0602 /* StackPointer.cpp in Sources */,
FEDACD3D1630F83F00C69634 /* StackStats.cpp in Sources */,
3337DB9CE743410FAF076E17 /* StackTrace.cpp in Sources */,
7C595FFE252A96E000E42168 /* StdFilesystem.cpp in Sources */,
0F95B63720CB5EFD00479635 /* StringBuffer.cpp in Sources */,
A8A4743C151A825B004123FF /* StringBuilder.cpp in Sources */,
E38D6E271F5522E300A75CC4 /* StringBuilderJSON.cpp in Sources */,
A5BA15FB182435A600A82E69 /* StringCF.cpp in Sources */,
@ -1622,6 +1774,7 @@
A8A473B7151A825B004123FF /* strtod.cc in Sources */,
52183012C99E476A84EEBEA8 /* SymbolImpl.cpp in Sources */,
70A993FE1AD7151300FA615B /* SymbolRegistry.cpp in Sources */,
EB61EDC72409CCC1001EFE36 /* SystemTracingCocoa.cpp in Sources */,
1C181C7F1D3078DA00F5FA16 /* TextBreakIterator.cpp in Sources */,
1C181C961D30800A00F5FA16 /* TextBreakIteratorInternalICUCocoa.cpp in Sources */,
A3E4DD931F3A803400DED0B4 /* TextStream.cpp in Sources */,
@ -1632,6 +1785,8 @@
5311BD5C1EA822F900525281 /* ThreadMessage.cpp in Sources */,
0F66B2901DC97BAB004A1D3F /* TimeWithDynamicClockType.cpp in Sources */,
0F7075F51FBF53CD00489AF0 /* TimingScope.cpp in Sources */,
521CC6B424A27809004377D6 /* TranslatedProcess.cpp in Sources */,
0FA6F39520CCACE900A03DCD /* UniqueArray.cpp in Sources */,
5CC0EE7621629F1900A1A842 /* URL.cpp in Sources */,
5C1F0595216437B30039302C /* URLCF.cpp in Sources */,
5CC0EE892162BC2200A1A842 /* URLCocoa.mm in Sources */,
@ -1642,6 +1797,7 @@
1C181C931D307AB800F5FA16 /* UTextProviderUTF16.cpp in Sources */,
A8A47469151A825B004123FF /* UTF8Conversion.cpp in Sources */,
7AFEC6B11EB22B5900DADE36 /* UUID.cpp in Sources */,
E3149A39228BB43500BFA6C7 /* Vector.cpp in Sources */,
0F66B2921DC97BAB004A1D3F /* WallTime.cpp in Sources */,
1FA47C8A152502DA00568D1B /* WebCoreThread.cpp in Sources */,
0FE4479C1B7AAA03009498EB /* WordLock.cpp in Sources */,
@ -1649,6 +1805,7 @@
E4A0AD391A96245500536DF6 /* WorkQueue.cpp in Sources */,
E4A0AD3D1A96253C00536DF6 /* WorkQueueCocoa.cpp in Sources */,
FE05FAFF1FE5007500093230 /* WTFAssertions.cpp in Sources */,
FE032AD22463E43B0012D7C7 /* WTFConfig.cpp in Sources */,
A8A47445151A825B004123FF /* WTFString.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -1668,10 +1825,6 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 5D247B7014689C4700E78B76 /* DebugRelease.xcconfig */;
buildSettings = {
DEAD_CODE_STRIPPING = "$(DEAD_CODE_STRIPPING_debug)";
DEBUG_DEFINES = "$(DEBUG_DEFINES_debug)";
GCC_OPTIMIZATION_LEVEL = "$(GCC_OPTIMIZATION_LEVEL_debug)";
STRIP_INSTALLED_PRODUCT = "$(STRIP_INSTALLED_PRODUCT_debug)";
};
name = Debug;
};

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1140"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5D247B6114689B8600E78B76"
BuildableName = "libWTF.a"
BlueprintName = "WTF"
ReferencedContainer = "container:WTF.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5D247B6114689B8600E78B76"
BuildableName = "libWTF.a"
BlueprintName = "WTF"
ReferencedContainer = "container:WTF.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -118,7 +118,7 @@ void runTest(
notify(fullCondition, mustNotify);
{
std::lock_guard<LockType> locker(receivedLock);
auto locker = holdLock(receivedLock);
received.append(result);
}
}
@ -152,7 +152,7 @@ void runTest(
thread->waitForCompletion();
{
std::lock_guard<LockType> locker(lock);
auto locker = holdLock(lock);
shouldContinue = false;
}
notifyAll(emptyCondition);
@ -193,7 +193,7 @@ void runBenchmark(
int main(int argc, char** argv)
{
WTF::initializeThreading();
WTF::initialize();
if (argc != 6
|| sscanf(argv[2], "%u", &numProducers) != 1

View File

@ -10984,7 +10984,7 @@ void benchmark()
int main(int, char**)
{
WTF::initializeThreading();
WTF::initialize();
WallTime before = WallTime::now();

View File

@ -61,8 +61,8 @@ struct Benchmark {
static void run(const char* name)
{
LockType lock;
std::unique_ptr<unsigned[]> counts = std::make_unique<unsigned[]>(numThreads);
std::unique_ptr<RefPtr<Thread>[]> threads = std::make_unique<RefPtr<Thread>[]>(numThreads);
std::unique_ptr<unsigned[]> counts = makeUniqueWithoutFastMallocCheck<unsigned[]>(numThreads);
std::unique_ptr<RefPtr<Thread>[]> threads = makeUniqueWithoutFastMallocCheck<RefPtr<Thread>[]>(numThreads);
volatile bool keepGoing = true;
@ -115,7 +115,7 @@ struct Benchmark {
int main(int argc, char** argv)
{
WTF::initializeThreading();
WTF::initialize();
if (argc != 5
|| sscanf(argv[2], "%u", &numThreads) != 1

View File

@ -74,9 +74,9 @@ struct Benchmark {
template<typename LockType>
static void run(const char* name)
{
std::unique_ptr<WithPadding<LockType>[]> locks = std::make_unique<WithPadding<LockType>[]>(numThreadGroups);
std::unique_ptr<WithPadding<double>[]> words = std::make_unique<WithPadding<double>[]>(numThreadGroups);
std::unique_ptr<RefPtr<Thread>[]> threads = std::make_unique<RefPtr<Thread>[]>(numThreadGroups * numThreadsPerGroup);
std::unique_ptr<WithPadding<LockType>[]> locks = makeUniqueWithoutFastMallocCheck<WithPadding<LockType>[]>(numThreadGroups);
std::unique_ptr<WithPadding<double>[]> words = makeUniqueWithoutFastMallocCheck<WithPadding<double>[]>(numThreadGroups);
std::unique_ptr<RefPtr<Thread>[]> threads = makeUniqueWithoutFastMallocCheck<RefPtr<Thread>[]>(numThreadGroups * numThreadsPerGroup);
volatile bool keepGoing = true;
@ -159,7 +159,7 @@ bool parseValue(const char* string, unsigned* variable)
int main(int argc, char** argv)
{
WTF::initializeThreading();
WTF::initialize();
if (argc != 8
|| !parseValue(argv[2], &numThreadGroups)

View File

@ -0,0 +1 @@
../../../wtf/AnsiColors.h

View File

@ -0,0 +1 @@
../../../wtf/BoxPtr.h

View File

@ -0,0 +1 @@
../../../wtf/CompactRefPtrTuple.h

View File

@ -0,0 +1 @@
../../../wtf/CompactUniquePtrTuple.h

View File

@ -0,0 +1 @@
../../../wtf/DataMutex.h

View File

@ -0,0 +1 @@
../../../wtf/DataRef.h

View File

@ -0,0 +1 @@
../../../wtf/DebugHeap.h

View File

@ -1 +0,0 @@
../../../wtf/DumbPtrTraits.h

View File

@ -1 +0,0 @@
../../../wtf/DumbValueTraits.h

View File

@ -0,0 +1 @@
../../../wtf/EnumClassOperatorOverloads.h

View File

@ -0,0 +1 @@
../../../wtf/FailureAction.h

View File

@ -1 +0,0 @@
../../../wtf/FeatureDefines.h

View File

@ -1 +0,0 @@
../../../wtf/MD5.h

View File

@ -0,0 +1 @@
../../../wtf/MainThreadData.h

View File

@ -0,0 +1 @@
../../../wtf/NakedRef.h

View File

@ -0,0 +1 @@
../../../wtf/OSLogPrintStream.h

View File

@ -0,0 +1 @@
../../../wtf/Observer.h

View File

@ -0,0 +1 @@
../../../wtf/OptionSetHash.h

View File

@ -1 +0,0 @@
../../../wtf/PackedIntVector.h

View File

@ -0,0 +1 @@
../../../wtf/PackedRef.h

View File

@ -0,0 +1 @@
../../../wtf/PackedRefPtr.h

View File

@ -0,0 +1 @@
../../../wtf/PlatformCPU.h

View File

@ -0,0 +1 @@
../../../wtf/PlatformCallingConventions.h

View File

@ -0,0 +1 @@
../../../wtf/PlatformEnable.h

View File

@ -0,0 +1 @@
../../../wtf/PlatformEnableCocoa.h

View File

@ -0,0 +1 @@
../../../wtf/PlatformEnablePlayStation.h

View File

@ -0,0 +1 @@
../../../wtf/PlatformEnableWinApple.h

View File

@ -0,0 +1 @@
../../../wtf/PlatformEnableWinCairo.h

View File

@ -0,0 +1 @@
../../../wtf/PlatformHave.h

View File

@ -0,0 +1 @@
../../../wtf/PlatformLegacy.h

View File

@ -0,0 +1 @@
../../../wtf/PlatformOS.h

View File

@ -0,0 +1 @@
../../../wtf/PlatformUse.h

View File

@ -0,0 +1 @@
../../../wtf/RawPtrTraits.h

View File

@ -0,0 +1 @@
../../../wtf/RawValueTraits.h

View File

@ -0,0 +1 @@
../../../wtf/ResourceUsage.h

View File

@ -1 +0,0 @@
../../../wtf/RunLoopTimer.h

View File

@ -0,0 +1 @@
../../../wtf/StackCheck.h

View File

@ -0,0 +1 @@
../../../wtf/StdFilesystem.h

View File

@ -0,0 +1 @@
../../../wtf/StdIntExtras.h

View File

@ -0,0 +1 @@
../../../wtf/ThreadSanitizerSupport.h

View File

@ -0,0 +1 @@
../../../wtf/TranslatedProcess.h

View File

@ -0,0 +1 @@
../../../wtf/VectorHash.h

View File

@ -0,0 +1 @@
../../../wtf/WTFConfig.h

View File

@ -0,0 +1 @@
../../../../wtf/cocoa/CrashReporter.h

View File

@ -0,0 +1 @@
../../../../wtf/cocoa/MachSemaphore.h

View File

@ -0,0 +1 @@
../../../../wtf/cocoa/RuntimeApplicationChecksCocoa.h

View File

@ -0,0 +1 @@
../../../../wtf/cocoa/VectorCocoa.h

View File

@ -0,0 +1 @@
../../../../wtf/glib/ChassisType.h

View File

@ -0,0 +1 @@
../../../../wtf/glib/GSocketMonitor.h

View File

@ -0,0 +1 @@
../../../../wtf/glib/SocketConnection.h

View File

@ -0,0 +1 @@
../../../../wtf/linux/ProcessMemoryFootprint.h

View File

@ -0,0 +1 @@
../../../../../wtf/spi/cf/CFRunLoopSPI.h

View File

@ -0,0 +1 @@
../../../../../wtf/spi/cocoa/CrashReporterClientSPI.h

View File

@ -0,0 +1 @@
../../../../../wtf/spi/cocoa/MachVMSPI.h

View File

@ -0,0 +1 @@
../../../../../wtf/spi/cocoa/NSLocaleSPI.h

View File

@ -0,0 +1 @@
../../../../../wtf/spi/cocoa/OSLogSPI.h

View File

@ -0,0 +1 @@
../../../../../wtf/spi/darwin/OSVariantSPI.h

View File

@ -0,0 +1 @@
../../../../../wtf/spi/darwin/ProcessMemoryFootprint.h

View File

@ -0,0 +1 @@
../../../../wtf/text/CodePointIterator.h

View File

@ -0,0 +1 @@
../../../../wtf/text/StringParsingBuffer.h

View File

@ -1 +0,0 @@
../../../../wtf/text/ValueToString.h

View File

@ -1 +0,0 @@
../../../../../wtf/text/icu/TextBreakIteratorICU.h

View File

@ -0,0 +1 @@
../../../../../wtf/unicode/icu/ICUHelpers.h

View File

@ -1,25 +1,33 @@
COPYRIGHT AND PERMISSION NOTICE
COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
Copyright (c) 1995-2015 International Business Machines Corporation and others
Copyright © 1991-2018 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Unicode data files and any associated documentation
(the "Data Files") or Unicode software and any associated documentation
(the "Software") to deal in the Data Files or Software
without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, and/or sell copies of
the Data Files or Software, and to permit persons to whom the Data Files
or Software are furnished to do so, provided that either
(a) this copyright and permission notice appear with all copies
of the Data Files or Software, or
(b) this copyright and permission notice appear in associated
Documentation.
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify,
merge, publish, distribute, and/or sell copies of the Software, and to permit persons
to whom the Software is furnished to do so, provided that the above copyright notice(s)
and this permission notice appear in all copies of the Software and that both the above
copyright notice(s) and this permission notice appear in supporting documentation.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT OF THIRD PARTY RIGHTS.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THE DATA FILES OR SOFTWARE.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER
OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR
CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Except as contained in this notice, the name of a copyright holder shall not be used in
advertising or otherwise to promote the sale, use or other dealings in this Software
without prior written authorization of the copyright holder.
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale,
use or other dealings in these Data Files or Software without prior
written authorization of the copyright holder.

View File

@ -1,12 +1,8 @@
The headers in this directory are for compiling on Mac OS X 10.4 and newer.
The Mac OS X 10.4 and subsequent releases include the ICU binary, but not ICU headers.
The headers in this directory are for compiling on macOS 10.14 (Mojave) and newer.
macOS releases include the ICU binary, but not ICU headers.
For other platforms, installed ICU headers should be used rather than these.
They are specific to the Mac OS X platform.
They are specific to the macOS platform.
The headers here are from ICU version 55.1 downloaded from the ICU project.
http://site.icu-project.org/download/55#TOC-ICU4C-Download
The following changes are needed again if you update the files:
utypes.h:62 U_SHOW_CPLUSPLUS_API 0
uconfig.h:90 U_DISABLE_RENAMING 1
The headers here are from ICU version 62 downloaded from the ICU project.
http://site.icu-project.org/download/62#TOC-ICU4C-Download

View File

@ -1,7 +1,4 @@
datefmt.h svn-properties=allow-tabs=on
decimfmt.h svn-properties=allow-tabs=on
dtitvfmt.h svn-properties=allow-tabs=on
dtptngen.h svn-properties=allow-tabs=on
numfmt.h svn-properties=allow-tabs=on
plurfmt.h svn-properties=allow-tabs=on
usprep.h svn-properties=allow-tabs=on

View File

@ -1,3 +1,5 @@
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
*
@ -13,6 +15,7 @@
#include "unicode/utypes.h"
#include "unicode/uobject.h"
#include "unicode/locid.h"
#include "unicode/unistr.h"
#if !UCONFIG_NO_COLLATION

View File

@ -1,10 +1,12 @@
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
* Copyright (C) 2011-2012, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: appendable.h
* encoding: US-ASCII
* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
@ -17,7 +19,7 @@
/**
* \file
* \brief C++ API: Appendable class: Sink for Unicode code points and 16-bit code units (UChars).
* \brief C++ API: Appendable class: Sink for Unicode code points and 16-bit code units (char16_ts).
*/
#include "unicode/utypes.h"
@ -32,10 +34,10 @@ class UnicodeString;
* Combines elements of Java Appendable and ICU4C ByteSink.
*
* This class can be used in APIs where it does not matter whether the actual destination is
* a UnicodeString, a UChar[] array, a UnicodeSet, or any other object
* a UnicodeString, a char16_t[] array, a UnicodeSet, or any other object
* that receives and processes characters and/or strings.
*
* Implementation classes must implement at least appendCodeUnit(UChar).
* Implementation classes must implement at least appendCodeUnit(char16_t).
* The base class provides default implementations for the other methods.
*
* The methods do not take UErrorCode parameters.
@ -60,11 +62,11 @@ public:
* @return TRUE if the operation succeeded
* @stable ICU 4.8
*/
virtual UBool appendCodeUnit(UChar c) = 0;
virtual UBool appendCodeUnit(char16_t c) = 0;
/**
* Appends a code point.
* The default implementation calls appendCodeUnit(UChar) once or twice.
* The default implementation calls appendCodeUnit(char16_t) once or twice.
* @param c code point 0..0x10ffff
* @return TRUE if the operation succeeded
* @stable ICU 4.8
@ -73,20 +75,20 @@ public:
/**
* Appends a string.
* The default implementation calls appendCodeUnit(UChar) for each code unit.
* The default implementation calls appendCodeUnit(char16_t) for each code unit.
* @param s string, must not be NULL if length!=0
* @param length string length, or -1 if NUL-terminated
* @return TRUE if the operation succeeded
* @stable ICU 4.8
*/
virtual UBool appendString(const UChar *s, int32_t length);
virtual UBool appendString(const char16_t *s, int32_t length);
/**
* Tells the object that the caller is going to append roughly
* appendCapacity UChars. A subclass might use this to pre-allocate
* appendCapacity char16_ts. A subclass might use this to pre-allocate
* a larger buffer if necessary.
* The default implementation does nothing. (It always returns TRUE.)
* @param appendCapacity estimated number of UChars that will be appended
* @param appendCapacity estimated number of char16_ts that will be appended
* @return TRUE if the operation succeeded
* @stable ICU 4.8
*/
@ -100,19 +102,19 @@ public:
* The returned buffer is only valid until the next operation
* on this Appendable.
*
* After writing at most *resultCapacity UChars, call appendString() with the
* pointer returned from this function and the number of UChars written.
* Many appendString() implementations will avoid copying UChars if this function
* After writing at most *resultCapacity char16_ts, call appendString() with the
* pointer returned from this function and the number of char16_ts written.
* Many appendString() implementations will avoid copying char16_ts if this function
* returned an internal buffer.
*
* Partial usage example:
* \code
* int32_t capacity;
* UChar* buffer = app.getAppendBuffer(..., &capacity);
* ... Write n UChars into buffer, with n <= capacity.
* char16_t* buffer = app.getAppendBuffer(..., &capacity);
* ... Write n char16_ts into buffer, with n <= capacity.
* app.appendString(buffer, n);
* \endcode
* In many implementations, that call to append will avoid copying UChars.
* In many implementations, that call to append will avoid copying char16_ts.
*
* If the Appendable allocates or reallocates an internal buffer, it should use
* the desiredCapacityHint if appropriate.
@ -136,9 +138,9 @@ public:
* @return a buffer with *resultCapacity>=minCapacity
* @stable ICU 4.8
*/
virtual UChar *getAppendBuffer(int32_t minCapacity,
virtual char16_t *getAppendBuffer(int32_t minCapacity,
int32_t desiredCapacityHint,
UChar *scratch, int32_t scratchCapacity,
char16_t *scratch, int32_t scratchCapacity,
int32_t *resultCapacity);
};
@ -169,7 +171,7 @@ public:
* @return TRUE if the operation succeeded
* @stable ICU 4.8
*/
virtual UBool appendCodeUnit(UChar c);
virtual UBool appendCodeUnit(char16_t c);
/**
* Appends a code point to the string.
@ -186,12 +188,12 @@ public:
* @return TRUE if the operation succeeded
* @stable ICU 4.8
*/
virtual UBool appendString(const UChar *s, int32_t length);
virtual UBool appendString(const char16_t *s, int32_t length);
/**
* Tells the UnicodeString that the caller is going to append roughly
* appendCapacity UChars.
* @param appendCapacity estimated number of UChars that will be appended
* appendCapacity char16_ts.
* @param appendCapacity estimated number of char16_ts that will be appended
* @return TRUE if the operation succeeded
* @stable ICU 4.8
*/
@ -218,9 +220,9 @@ public:
* @return a buffer with *resultCapacity>=minCapacity
* @stable ICU 4.8
*/
virtual UChar *getAppendBuffer(int32_t minCapacity,
virtual char16_t *getAppendBuffer(int32_t minCapacity,
int32_t desiredCapacityHint,
UChar *scratch, int32_t scratchCapacity,
char16_t *scratch, int32_t scratchCapacity,
int32_t *resultCapacity);
private:

View File

@ -1,3 +1,5 @@
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
* Copyright (C) 2007-2013, International Business Machines Corporation and

View File

@ -1,6 +1,8 @@
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
********************************************************************************
* Copyright (C) 1997-2014, International Business Machines
* Copyright (C) 1997-2016, International Business Machines
* Corporation and others. All Rights Reserved.
********************************************************************************
*
@ -168,6 +170,11 @@ public:
/**
* Change the text over which this operates. The text boundary is
* reset to the start.
*
* The BreakIterator will retain a reference to the supplied string.
* The caller must not modify or delete the text while the BreakIterator
* retains the reference.
*
* @param text The UnicodeString used to change the text.
* @stable ICU 2.0
*/
@ -243,7 +250,7 @@ public:
virtual int32_t next(void) = 0;
/**
* Return character index of the current interator position within the text.
* Return character index of the current iterator position within the text.
* @return The boundary most recently returned.
* @stable ICU 2.0
*/
@ -270,7 +277,7 @@ public:
virtual int32_t preceding(int32_t offset) = 0;
/**
* Return true if the specfied position is a boundary position.
* Return true if the specified position is a boundary position.
* As a side effect, the current position of the iterator is set
* to the first boundary position at or following the specified offset.
* @param offset the offset to check.
@ -285,21 +292,20 @@ public:
* does nothing. Negative values move to previous boundaries
* and positive values move to later boundaries.
* @return The new iterator position, or
* DONE if there are fewer than |n| boundaries in the specfied direction.
* DONE if there are fewer than |n| boundaries in the specified direction.
* @stable ICU 2.0
*/
virtual int32_t next(int32_t n) = 0;
/**
* For RuleBasedBreakIterators, return the status tag from the
* break rule that determined the most recently
* returned break position.
* For RuleBasedBreakIterators, return the status tag from the break rule
* that determined the boundary at the current iteration position.
* <p>
* For break iterator types that do not support a rule status,
* a default value of 0 is returned.
* <p>
* @return the status from the break rule that determined the most recently
* returned break position.
* @return the status from the break rule that determined the boundary at
* the current iteration position.
* @see RuleBaseBreakIterator::getRuleStatus()
* @see UWordBreak
* @stable ICU 52
@ -307,8 +313,8 @@ public:
virtual int32_t getRuleStatus() const;
/**
* For RuleBasedBreakIterators, get the status (tag) values from the break rule(s)
* that determined the most recently returned break position.
* For RuleBasedBreakIterators, get the status (tag) values from the break rule(s)
* that determined the boundary at the current iteration position.
* <p>
* For break iterator types that do not support rule status,
* no values are returned.
@ -324,10 +330,10 @@ public:
* @param fillInVec an array to be filled in with the status values.
* @param capacity the length of the supplied vector. A length of zero causes
* the function to return the number of status values, in the
* normal way, without attemtping to store any values.
* normal way, without attempting to store any values.
* @param status receives error codes.
* @return The number of rule status values from rules that determined
* the most recent boundary returned by the break iterator.
* the boundary at the current iteration position.
* In the event of a U_BUFFER_OVERFLOW_ERROR, the return value
* is the total number of status values that were available,
* not the reduced number that were actually returned.
@ -462,7 +468,7 @@ public:
static const Locale* U_EXPORT2 getAvailableLocales(int32_t& count);
/**
* Get name of the object for the desired Locale, in the desired langauge.
* Get name of the object for the desired Locale, in the desired language.
* @param objectLocale must be from getAvailableLocales.
* @param displayLocale specifies the desired locale for output.
* @param name the fill-in parameter of the return value
@ -475,7 +481,7 @@ public:
UnicodeString& name);
/**
* Get name of the object for the desired Locale, in the langauge of the
* Get name of the object for the desired Locale, in the language of the
* default locale.
* @param objectLocale must be from getMatchingLocales
* @param name the fill-in parameter of the return value
@ -609,7 +615,7 @@ public:
virtual BreakIterator &refreshInputText(UText *input, UErrorCode &status) = 0;
private:
static BreakIterator* buildInstance(const Locale& loc, const char *type, int32_t kind, UErrorCode& status);
static BreakIterator* buildInstance(const Locale& loc, const char *type, UErrorCode& status);
static BreakIterator* createInstance(const Locale& loc, int32_t kind, UErrorCode& status);
static BreakIterator* makeInstance(const Locale& loc, int32_t kind, UErrorCode& status);
@ -622,20 +628,19 @@ protected:
/** @internal */
BreakIterator();
/** @internal */
BreakIterator (const BreakIterator &other) : UObject(other) {}
BreakIterator (const BreakIterator &other);
#ifndef U_HIDE_INTERNAL_API
/** @internal */
BreakIterator (const Locale& valid, const Locale& actual);
BreakIterator (const Locale& valid, const Locale &actual);
/** @internal. Assignment Operator, used by RuleBasedBreakIterator. */
BreakIterator &operator = (const BreakIterator &other);
#endif /* U_HIDE_INTERNAL_API */
private:
/** @internal */
/** @internal (private) */
char actualLocale[ULOC_FULLNAME_CAPACITY];
char validLocale[ULOC_FULLNAME_CAPACITY];
/**
* The assignment operator has no real implementation.
* It's provided to make the compiler happy. Do not call.
*/
BreakIterator& operator=(const BreakIterator&);
};
#ifndef U_HIDE_DEPRECATED_API
@ -651,5 +656,5 @@ U_NAMESPACE_END
#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
#endif // _BRKITER
#endif // BRKITER_H
//eof

View File

@ -1,3 +1,5 @@
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Copyright (C) 2009-2012, International Business Machines
// Corporation and others. All Rights Reserved.
//
@ -124,8 +126,8 @@ public:
virtual void Flush();
private:
ByteSink(const ByteSink &); // copy constructor not implemented
ByteSink &operator=(const ByteSink &); // assignment operator not implemented
ByteSink(const ByteSink &) = delete;
ByteSink &operator=(const ByteSink &) = delete;
};
// -------------------------------------------------------------
@ -215,12 +217,11 @@ private:
int32_t size_;
int32_t appended_;
UBool overflowed_;
CheckedArrayByteSink(); ///< default constructor not implemented
CheckedArrayByteSink(const CheckedArrayByteSink &); ///< copy constructor not implemented
CheckedArrayByteSink &operator=(const CheckedArrayByteSink &); ///< assignment operator not implemented
};
#if U_HAVE_STD_STRING
CheckedArrayByteSink() = delete;
CheckedArrayByteSink(const CheckedArrayByteSink &) = delete;
CheckedArrayByteSink &operator=(const CheckedArrayByteSink &) = delete;
};
/**
* Implementation of ByteSink that writes to a "string".
@ -236,6 +237,21 @@ class StringByteSink : public ByteSink {
* @stable ICU 4.2
*/
StringByteSink(StringClass* dest) : dest_(dest) { }
#ifndef U_HIDE_DRAFT_API
/**
* Constructs a ByteSink that reserves append capacity and will append bytes to the dest string.
*
* @param dest pointer to string object to append to
* @param initialAppendCapacity capacity beyond dest->length() to be reserve()d
* @draft ICU 60
*/
StringByteSink(StringClass* dest, int32_t initialAppendCapacity) : dest_(dest) {
if (initialAppendCapacity > 0 &&
(uint32_t)initialAppendCapacity > (dest->capacity() - dest->length())) {
dest->reserve(dest->length() + initialAppendCapacity);
}
}
#endif // U_HIDE_DRAFT_API
/**
* Append "bytes[0,n-1]" to this.
* @param data the pointer to the bytes
@ -245,12 +261,11 @@ class StringByteSink : public ByteSink {
virtual void Append(const char* data, int32_t n) { dest_->append(data, n); }
private:
StringClass* dest_;
StringByteSink(); ///< default constructor not implemented
StringByteSink(const StringByteSink &); ///< copy constructor not implemented
StringByteSink &operator=(const StringByteSink &); ///< assignment operator not implemented
};
#endif
StringByteSink() = delete;
StringByteSink(const StringByteSink &) = delete;
StringByteSink &operator=(const StringByteSink &) = delete;
};
U_NAMESPACE_END

View File

@ -1,10 +1,12 @@
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
* Copyright (C) 2010-2012, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: bytestrie.h
* encoding: US-ASCII
* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
@ -306,7 +308,7 @@ public:
* @return The NUL-terminated byte sequence for the last successful next().
* @stable ICU 4.8
*/
const StringPiece &getString() const { return sp_; }
StringPiece getString() const;
/**
* @return The value for the last successful next().
* @stable ICU 4.8
@ -325,7 +327,6 @@ public:
int32_t initialRemainingMatchLength_;
CharString *str_;
StringPiece sp_;
int32_t maxLength_;
int32_t value_;

View File

@ -1,10 +1,12 @@
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
* Copyright (C) 2010-2014, International Business Machines
* Copyright (C) 2010-2016, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: bytestriebuilder.h
* encoding: US-ASCII
* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
@ -29,7 +31,6 @@ U_NAMESPACE_BEGIN
class BytesTrieElement;
class CharString;
/**
* Builder class for BytesTrie.
*
@ -65,7 +66,7 @@ public:
* @return *this
* @stable ICU 4.8
*/
BytesTrieBuilder &add(const StringPiece &s, int32_t value, UErrorCode &errorCode);
BytesTrieBuilder &add(StringPiece s, int32_t value, UErrorCode &errorCode);
/**
* Builds a BytesTrie for the add()ed data.
@ -126,14 +127,14 @@ private:
void buildBytes(UStringTrieBuildOption buildOption, UErrorCode &errorCode);
virtual int32_t getElementStringLength(int32_t i) const;
virtual UChar getElementUnit(int32_t i, int32_t byteIndex) const;
virtual char16_t getElementUnit(int32_t i, int32_t byteIndex) const;
virtual int32_t getElementValue(int32_t i) const;
virtual int32_t getLimitOfLinearMatch(int32_t first, int32_t last, int32_t byteIndex) const;
virtual int32_t countElementUnits(int32_t start, int32_t limit, int32_t byteIndex) const;
virtual int32_t skipElementsBySomeUnits(int32_t i, int32_t byteIndex, int32_t count) const;
virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, UChar byte) const;
virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, char16_t byte) const;
virtual UBool matchNodesCanHaveValues() const { return FALSE; }
@ -142,7 +143,7 @@ private:
virtual int32_t getMaxLinearMatchLength() const { return BytesTrie::kMaxLinearMatchLength; }
/**
* @internal
* @internal (private)
*/
class BTLinearMatchNode : public LinearMatchNode {
public:
@ -152,7 +153,7 @@ private:
private:
const char *s;
};
virtual Node *createLinearMatchNode(int32_t i, int32_t byteIndex, int32_t length,
Node *nextNode) const;

View File

@ -1,3 +1,5 @@
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
********************************************************************************
* Copyright (C) 1997-2014, International Business Machines
@ -28,7 +30,7 @@
#include "unicode/utypes.h"
/**
* \file
* \file
* \brief C++ API: Calendar object
*/
#if !UCONFIG_NO_FORMATTING
@ -135,7 +137,7 @@ class BasicTimeZone;
* Calendar resolves the time using the UTC offset before the transition by default.
* In this example, 1:30 AM is interpreted as 1:30 AM standard time (non-exist),
* so the final result will be 2:30 AM daylight time.
*
*
* <p>On the date switching back to standard time, wall clock time is moved back one
* hour at 2:00 AM. So wall clock time from 1:00 AM to 1:59 AM occur twice. In this
* case, the ICU Calendar resolves the time using the UTC offset after the transition
@ -148,7 +150,7 @@ class BasicTimeZone;
* <p>
* <strong>Note:</strong> for some non-Gregorian calendars, different
* fields may be necessary for complete disambiguation. For example, a full
* specification of the historial Arabic astronomical calendar requires year,
* specification of the historical Arabic astronomical calendar requires year,
* month, day-of-month <em>and</em> day-of-week in some cases.
*
* <p>
@ -195,6 +197,19 @@ class BasicTimeZone;
* should use the protected constants in <code>Calendar</code> to
* specify an extremely early or extremely late date.</p>
*
* <p>
* The Japanese calendar uses a combination of era name and year number.
* When an emperor of Japan abdicates and a new emperor ascends the throne,
* a new era is declared and year number is reset to 1. Even if the date of
* abdication is scheduled ahead of time, the new era name might not be
* announced until just before the date. In such case, ICU4C may include
* a start date of future era without actual era name, but not enabled
* by default. ICU4C users who want to test the behavior of the future era
* can enable the tentative era by:
* <ul>
* <li>Environment variable <code>ICU_ENABLE_TENTATIVE_ERA=true</code>.</li>
* </ul>
*
* @stable ICU 2.0
*/
class U_I18N_API Calendar : public UObject {
@ -233,7 +248,7 @@ public:
DST_OFFSET, // Example: 0 or U_MILLIS_PER_HOUR
YEAR_WOY, // 'Y' Example: 1..big number - Year of Week of Year
DOW_LOCAL, // 'e' Example: 1..7 - Day of Week / Localized
EXTENDED_YEAR,
JULIAN_DAY,
MILLISECONDS_IN_DAY,
@ -901,7 +916,7 @@ public:
/**
* Sets the behavior for handling wall time repeating multiple times
* at negative time zone offset transitions. For example, 1:30 AM on
* November 6, 2011 in US Eastern time (Ameirca/New_York) occurs twice;
* November 6, 2011 in US Eastern time (America/New_York) occurs twice;
* 1:30 AM EDT, then 1:30 AM EST one hour later. When <code>UCAL_WALLTIME_FIRST</code>
* is used, the wall time 1:30AM in this example will be interpreted as 1:30 AM EDT
* (first occurrence). When <code>UCAL_WALLTIME_LAST</code> is used, it will be
@ -912,7 +927,7 @@ public:
* option for this. When the argument is neither <code>UCAL_WALLTIME_FIRST</code>
* nor <code>UCAL_WALLTIME_LAST</code>, this method has no effect and will keep
* the current setting.
*
*
* @param option the behavior for handling repeating wall time, either
* <code>UCAL_WALLTIME_FIRST</code> or <code>UCAL_WALLTIME_LAST</code>.
* @see #getRepeatedWallTimeOption
@ -923,7 +938,7 @@ public:
/**
* Gets the behavior for handling wall time repeating multiple times
* at negative time zone offset transitions.
*
*
* @return the behavior for handling repeating wall time, either
* <code>UCAL_WALLTIME_FIRST</code> or <code>UCAL_WALLTIME_LAST</code>.
* @see #setRepeatedWallTimeOption
@ -944,12 +959,12 @@ public:
* <p>
* <b>Note:</b>This option is effective only when this calendar is lenient.
* When the calendar is strict, such non-existing wall time will cause an error.
*
*
* @param option the behavior for handling skipped wall time at positive time zone
* offset transitions, one of <code>UCAL_WALLTIME_FIRST</code>, <code>UCAL_WALLTIME_LAST</code> and
* <code>UCAL_WALLTIME_NEXT_VALID</code>.
* @see #getSkippedWallTimeOption
*
*
* @stable ICU 49
*/
void setSkippedWallTimeOption(UCalendarWallTimeOption option);
@ -957,7 +972,7 @@ public:
/**
* Gets the behavior for handling skipped wall time at positive time zone offset
* transitions.
*
*
* @return the behavior for handling skipped wall time, one of
* <code>UCAL_WALLTIME_FIRST</code>, <code>UCAL_WALLTIME_LAST</code>
* and <code>UCAL_WALLTIME_NEXT_VALID</code>.
@ -1739,7 +1754,7 @@ protected:
* reflects local zone wall time.
* @internal
*/
int32_t computeMillisInDay();
double computeMillisInDay();
/**
* This method can assume EXTENDED_YEAR has been set.
@ -1750,7 +1765,7 @@ protected:
* when this function fails.
* @internal
*/
int32_t computeZoneOffset(double millis, int32_t millisInDay, UErrorCode &ec);
int32_t computeZoneOffset(double millis, double millisInDay, UErrorCode &ec);
/**
@ -2169,7 +2184,7 @@ private:
TimeZone* fZone;
/**
* Option for rpeated wall time
* Option for repeated wall time
* @see #setRepeatedWallTimeOption
*/
UCalendarWallTimeOption fRepeatedWallTime;
@ -2454,7 +2469,7 @@ private:
BasicTimeZone* getBasicTimeZone() const;
/**
* Find the previous zone transtion near the given time.
* Find the previous zone transition near the given time.
* @param base The base time, inclusive
* @param transitionTime Receives the result time
* @param status The error status

View File

@ -1,3 +1,5 @@
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
* Copyright (C) 1996-2014, International Business Machines Corporation and
@ -118,7 +120,7 @@ public:
#ifndef U_HIDE_INTERNAL_API
/**
* Dumb recursive implementation of permutation.
* Unoptimized recursive implementation of permutation.
* TODO: optimize
* @param source the string to find permutations for
* @param skipZeros determine if skip zeros
@ -151,13 +153,13 @@ private:
/**
* Copy constructor. Private for now.
* @internal
* @internal (private)
*/
CanonicalIterator(const CanonicalIterator& other);
/**
* Assignment operator. Private for now.
* @internal
* @internal (private)
*/
CanonicalIterator& operator=(const CanonicalIterator& other);
@ -185,7 +187,7 @@ private:
UnicodeString *getEquivalents(const UnicodeString &segment, int32_t &result_len, UErrorCode &status); //private String[] getEquivalents(String segment)
//Set getEquivalents2(String segment);
Hashtable *getEquivalents2(Hashtable *fillinResult, const UChar *segment, int32_t segLen, UErrorCode &status);
Hashtable *getEquivalents2(Hashtable *fillinResult, const char16_t *segment, int32_t segLen, UErrorCode &status);
//Hashtable *getEquivalents2(const UnicodeString &segment, int32_t segLen, UErrorCode &status);
/**
@ -194,7 +196,7 @@ private:
* If so, take the remainder, and return the equivalents
*/
//Set extract(int comp, String segment, int segmentPos, StringBuffer buffer);
Hashtable *extract(Hashtable *fillinResult, UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status);
Hashtable *extract(Hashtable *fillinResult, UChar32 comp, const char16_t *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status);
//Hashtable *extract(UChar32 comp, const UnicodeString &segment, int32_t segLen, int32_t segmentPos, UErrorCode &status);
void cleanPieces();

494
icu/unicode/casemap.h Normal file
View File

@ -0,0 +1,494 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// casemap.h
// created: 2017jan12 Markus W. Scherer
#ifndef __CASEMAP_H__
#define __CASEMAP_H__
#include "unicode/utypes.h"
#include "unicode/stringpiece.h"
#include "unicode/uobject.h"
/**
* \file
* \brief C++ API: Low-level C++ case mapping functions.
*/
U_NAMESPACE_BEGIN
class BreakIterator;
class ByteSink;
class Edits;
/**
* Low-level C++ case mapping functions.
*
* @stable ICU 59
*/
class U_COMMON_API CaseMap U_FINAL : public UMemory {
public:
/**
* Lowercases a UTF-16 string and optionally records edits.
* Casing is locale-dependent and context-sensitive.
* The result may be longer or shorter than the original.
* The source string and the destination buffer must not overlap.
*
* @param locale The locale ID. ("" = root locale, NULL = default locale.)
* @param options Options bit set, usually 0. See U_OMIT_UNCHANGED_TEXT and U_EDITS_NO_RESET.
* @param src The original string.
* @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
* @param dest A buffer for the result string. The result will be NUL-terminated if
* the buffer is large enough.
* The contents is undefined in case of failure.
* @param destCapacity The size of the buffer (number of char16_ts). If it is 0, then
* dest may be NULL and the function will only return the length of the result
* without writing any of the result string.
* @param edits Records edits for index mapping, working with styled text,
* and getting only changes (if any).
* The Edits contents is undefined if any error occurs.
* This function calls edits->reset() first unless
* options includes U_EDITS_NO_RESET. edits can be NULL.
* @param errorCode Reference to an in/out error code value
* which must not indicate a failure before the function call.
* @return The length of the result string, if successful.
* When the result would be longer than destCapacity,
* the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
*
* @see u_strToLower
* @stable ICU 59
*/
static int32_t toLower(
const char *locale, uint32_t options,
const char16_t *src, int32_t srcLength,
char16_t *dest, int32_t destCapacity, Edits *edits,
UErrorCode &errorCode);
/**
* Uppercases a UTF-16 string and optionally records edits.
* Casing is locale-dependent and context-sensitive.
* The result may be longer or shorter than the original.
* The source string and the destination buffer must not overlap.
*
* @param locale The locale ID. ("" = root locale, NULL = default locale.)
* @param options Options bit set, usually 0. See U_OMIT_UNCHANGED_TEXT and U_EDITS_NO_RESET.
* @param src The original string.
* @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
* @param dest A buffer for the result string. The result will be NUL-terminated if
* the buffer is large enough.
* The contents is undefined in case of failure.
* @param destCapacity The size of the buffer (number of char16_ts). If it is 0, then
* dest may be NULL and the function will only return the length of the result
* without writing any of the result string.
* @param edits Records edits for index mapping, working with styled text,
* and getting only changes (if any).
* The Edits contents is undefined if any error occurs.
* This function calls edits->reset() first unless
* options includes U_EDITS_NO_RESET. edits can be NULL.
* @param errorCode Reference to an in/out error code value
* which must not indicate a failure before the function call.
* @return The length of the result string, if successful.
* When the result would be longer than destCapacity,
* the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
*
* @see u_strToUpper
* @stable ICU 59
*/
static int32_t toUpper(
const char *locale, uint32_t options,
const char16_t *src, int32_t srcLength,
char16_t *dest, int32_t destCapacity, Edits *edits,
UErrorCode &errorCode);
#if !UCONFIG_NO_BREAK_ITERATION
/**
* Titlecases a UTF-16 string and optionally records edits.
* Casing is locale-dependent and context-sensitive.
* The result may be longer or shorter than the original.
* The source string and the destination buffer must not overlap.
*
* Titlecasing uses a break iterator to find the first characters of words
* that are to be titlecased. It titlecases those characters and lowercases
* all others. (This can be modified with options bits.)
*
* @param locale The locale ID. ("" = root locale, NULL = default locale.)
* @param options Options bit set, usually 0. See U_OMIT_UNCHANGED_TEXT, U_EDITS_NO_RESET,
* U_TITLECASE_NO_LOWERCASE,
* U_TITLECASE_NO_BREAK_ADJUSTMENT, U_TITLECASE_ADJUST_TO_CASED,
* U_TITLECASE_WHOLE_STRING, U_TITLECASE_SENTENCES.
* @param iter A break iterator to find the first characters of words that are to be titlecased.
* It is set to the source string (setText())
* and used one or more times for iteration (first() and next()).
* If NULL, then a word break iterator for the locale is used
* (or something equivalent).
* @param src The original string.
* @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
* @param dest A buffer for the result string. The result will be NUL-terminated if
* the buffer is large enough.
* The contents is undefined in case of failure.
* @param destCapacity The size of the buffer (number of char16_ts). If it is 0, then
* dest may be NULL and the function will only return the length of the result
* without writing any of the result string.
* @param edits Records edits for index mapping, working with styled text,
* and getting only changes (if any).
* The Edits contents is undefined if any error occurs.
* This function calls edits->reset() first unless
* options includes U_EDITS_NO_RESET. edits can be NULL.
* @param errorCode Reference to an in/out error code value
* which must not indicate a failure before the function call.
* @return The length of the result string, if successful.
* When the result would be longer than destCapacity,
* the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
*
* @see u_strToTitle
* @see ucasemap_toTitle
* @stable ICU 59
*/
static int32_t toTitle(
const char *locale, uint32_t options, BreakIterator *iter,
const char16_t *src, int32_t srcLength,
char16_t *dest, int32_t destCapacity, Edits *edits,
UErrorCode &errorCode);
#endif // UCONFIG_NO_BREAK_ITERATION
/**
* Case-folds a UTF-16 string and optionally records edits.
*
* Case folding is locale-independent and not context-sensitive,
* but there is an option for whether to include or exclude mappings for dotted I
* and dotless i that are marked with 'T' in CaseFolding.txt.
*
* The result may be longer or shorter than the original.
* The source string and the destination buffer must not overlap.
*
* @param options Options bit set, usually 0. See U_OMIT_UNCHANGED_TEXT, U_EDITS_NO_RESET,
* U_FOLD_CASE_DEFAULT, U_FOLD_CASE_EXCLUDE_SPECIAL_I.
* @param src The original string.
* @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
* @param dest A buffer for the result string. The result will be NUL-terminated if
* the buffer is large enough.
* The contents is undefined in case of failure.
* @param destCapacity The size of the buffer (number of char16_ts). If it is 0, then
* dest may be NULL and the function will only return the length of the result
* without writing any of the result string.
* @param edits Records edits for index mapping, working with styled text,
* and getting only changes (if any).
* The Edits contents is undefined if any error occurs.
* This function calls edits->reset() first unless
* options includes U_EDITS_NO_RESET. edits can be NULL.
* @param errorCode Reference to an in/out error code value
* which must not indicate a failure before the function call.
* @return The length of the result string, if successful.
* When the result would be longer than destCapacity,
* the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
*
* @see u_strFoldCase
* @stable ICU 59
*/
static int32_t fold(
uint32_t options,
const char16_t *src, int32_t srcLength,
char16_t *dest, int32_t destCapacity, Edits *edits,
UErrorCode &errorCode);
#ifndef U_HIDE_DRAFT_API
/**
* Lowercases a UTF-8 string and optionally records edits.
* Casing is locale-dependent and context-sensitive.
* The result may be longer or shorter than the original.
*
* @param locale The locale ID. ("" = root locale, NULL = default locale.)
* @param options Options bit set, usually 0. See U_OMIT_UNCHANGED_TEXT and U_EDITS_NO_RESET.
* @param src The original string.
* @param sink A ByteSink to which the result string is written.
* sink.Flush() is called at the end.
* @param edits Records edits for index mapping, working with styled text,
* and getting only changes (if any).
* The Edits contents is undefined if any error occurs.
* This function calls edits->reset() first unless
* options includes U_EDITS_NO_RESET. edits can be NULL.
* @param errorCode Reference to an in/out error code value
* which must not indicate a failure before the function call.
*
* @see ucasemap_utf8ToLower
* @draft ICU 60
*/
static void utf8ToLower(
const char *locale, uint32_t options,
StringPiece src, ByteSink &sink, Edits *edits,
UErrorCode &errorCode);
/**
* Uppercases a UTF-8 string and optionally records edits.
* Casing is locale-dependent and context-sensitive.
* The result may be longer or shorter than the original.
*
* @param locale The locale ID. ("" = root locale, NULL = default locale.)
* @param options Options bit set, usually 0. See U_OMIT_UNCHANGED_TEXT and U_EDITS_NO_RESET.
* @param src The original string.
* @param sink A ByteSink to which the result string is written.
* sink.Flush() is called at the end.
* @param edits Records edits for index mapping, working with styled text,
* and getting only changes (if any).
* The Edits contents is undefined if any error occurs.
* This function calls edits->reset() first unless
* options includes U_EDITS_NO_RESET. edits can be NULL.
* @param errorCode Reference to an in/out error code value
* which must not indicate a failure before the function call.
*
* @see ucasemap_utf8ToUpper
* @draft ICU 60
*/
static void utf8ToUpper(
const char *locale, uint32_t options,
StringPiece src, ByteSink &sink, Edits *edits,
UErrorCode &errorCode);
#if !UCONFIG_NO_BREAK_ITERATION
/**
* Titlecases a UTF-8 string and optionally records edits.
* Casing is locale-dependent and context-sensitive.
* The result may be longer or shorter than the original.
*
* Titlecasing uses a break iterator to find the first characters of words
* that are to be titlecased. It titlecases those characters and lowercases
* all others. (This can be modified with options bits.)
*
* @param locale The locale ID. ("" = root locale, NULL = default locale.)
* @param options Options bit set, usually 0. See U_OMIT_UNCHANGED_TEXT, U_EDITS_NO_RESET,
* U_TITLECASE_NO_LOWERCASE,
* U_TITLECASE_NO_BREAK_ADJUSTMENT, U_TITLECASE_ADJUST_TO_CASED,
* U_TITLECASE_WHOLE_STRING, U_TITLECASE_SENTENCES.
* @param iter A break iterator to find the first characters of words that are to be titlecased.
* It is set to the source string (setUText())
* and used one or more times for iteration (first() and next()).
* If NULL, then a word break iterator for the locale is used
* (or something equivalent).
* @param src The original string.
* @param sink A ByteSink to which the result string is written.
* sink.Flush() is called at the end.
* @param edits Records edits for index mapping, working with styled text,
* and getting only changes (if any).
* The Edits contents is undefined if any error occurs.
* This function calls edits->reset() first unless
* options includes U_EDITS_NO_RESET. edits can be NULL.
* @param errorCode Reference to an in/out error code value
* which must not indicate a failure before the function call.
*
* @see ucasemap_utf8ToTitle
* @draft ICU 60
*/
static void utf8ToTitle(
const char *locale, uint32_t options, BreakIterator *iter,
StringPiece src, ByteSink &sink, Edits *edits,
UErrorCode &errorCode);
#endif // UCONFIG_NO_BREAK_ITERATION
/**
* Case-folds a UTF-8 string and optionally records edits.
*
* Case folding is locale-independent and not context-sensitive,
* but there is an option for whether to include or exclude mappings for dotted I
* and dotless i that are marked with 'T' in CaseFolding.txt.
*
* The result may be longer or shorter than the original.
*
* @param options Options bit set, usually 0. See U_OMIT_UNCHANGED_TEXT and U_EDITS_NO_RESET.
* @param src The original string.
* @param sink A ByteSink to which the result string is written.
* sink.Flush() is called at the end.
* @param edits Records edits for index mapping, working with styled text,
* and getting only changes (if any).
* The Edits contents is undefined if any error occurs.
* This function calls edits->reset() first unless
* options includes U_EDITS_NO_RESET. edits can be NULL.
* @param errorCode Reference to an in/out error code value
* which must not indicate a failure before the function call.
*
* @see ucasemap_utf8FoldCase
* @draft ICU 60
*/
static void utf8Fold(
uint32_t options,
StringPiece src, ByteSink &sink, Edits *edits,
UErrorCode &errorCode);
#endif // U_HIDE_DRAFT_API
/**
* Lowercases a UTF-8 string and optionally records edits.
* Casing is locale-dependent and context-sensitive.
* The result may be longer or shorter than the original.
* The source string and the destination buffer must not overlap.
*
* @param locale The locale ID. ("" = root locale, NULL = default locale.)
* @param options Options bit set, usually 0. See U_OMIT_UNCHANGED_TEXT and U_EDITS_NO_RESET.
* @param src The original string.
* @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
* @param dest A buffer for the result string. The result will be NUL-terminated if
* the buffer is large enough.
* The contents is undefined in case of failure.
* @param destCapacity The size of the buffer (number of bytes). If it is 0, then
* dest may be NULL and the function will only return the length of the result
* without writing any of the result string.
* @param edits Records edits for index mapping, working with styled text,
* and getting only changes (if any).
* The Edits contents is undefined if any error occurs.
* This function calls edits->reset() first unless
* options includes U_EDITS_NO_RESET. edits can be NULL.
* @param errorCode Reference to an in/out error code value
* which must not indicate a failure before the function call.
* @return The length of the result string, if successful.
* When the result would be longer than destCapacity,
* the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
*
* @see ucasemap_utf8ToLower
* @stable ICU 59
*/
static int32_t utf8ToLower(
const char *locale, uint32_t options,
const char *src, int32_t srcLength,
char *dest, int32_t destCapacity, Edits *edits,
UErrorCode &errorCode);
/**
* Uppercases a UTF-8 string and optionally records edits.
* Casing is locale-dependent and context-sensitive.
* The result may be longer or shorter than the original.
* The source string and the destination buffer must not overlap.
*
* @param locale The locale ID. ("" = root locale, NULL = default locale.)
* @param options Options bit set, usually 0. See U_OMIT_UNCHANGED_TEXT and U_EDITS_NO_RESET.
* @param src The original string.
* @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
* @param dest A buffer for the result string. The result will be NUL-terminated if
* the buffer is large enough.
* The contents is undefined in case of failure.
* @param destCapacity The size of the buffer (number of bytes). If it is 0, then
* dest may be NULL and the function will only return the length of the result
* without writing any of the result string.
* @param edits Records edits for index mapping, working with styled text,
* and getting only changes (if any).
* The Edits contents is undefined if any error occurs.
* This function calls edits->reset() first unless
* options includes U_EDITS_NO_RESET. edits can be NULL.
* @param errorCode Reference to an in/out error code value
* which must not indicate a failure before the function call.
* @return The length of the result string, if successful.
* When the result would be longer than destCapacity,
* the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
*
* @see ucasemap_utf8ToUpper
* @stable ICU 59
*/
static int32_t utf8ToUpper(
const char *locale, uint32_t options,
const char *src, int32_t srcLength,
char *dest, int32_t destCapacity, Edits *edits,
UErrorCode &errorCode);
#if !UCONFIG_NO_BREAK_ITERATION
/**
* Titlecases a UTF-8 string and optionally records edits.
* Casing is locale-dependent and context-sensitive.
* The result may be longer or shorter than the original.
* The source string and the destination buffer must not overlap.
*
* Titlecasing uses a break iterator to find the first characters of words
* that are to be titlecased. It titlecases those characters and lowercases
* all others. (This can be modified with options bits.)
*
* @param locale The locale ID. ("" = root locale, NULL = default locale.)
* @param options Options bit set, usually 0. See U_OMIT_UNCHANGED_TEXT, U_EDITS_NO_RESET,
* U_TITLECASE_NO_LOWERCASE,
* U_TITLECASE_NO_BREAK_ADJUSTMENT, U_TITLECASE_ADJUST_TO_CASED,
* U_TITLECASE_WHOLE_STRING, U_TITLECASE_SENTENCES.
* @param iter A break iterator to find the first characters of words that are to be titlecased.
* It is set to the source string (setUText())
* and used one or more times for iteration (first() and next()).
* If NULL, then a word break iterator for the locale is used
* (or something equivalent).
* @param src The original string.
* @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
* @param dest A buffer for the result string. The result will be NUL-terminated if
* the buffer is large enough.
* The contents is undefined in case of failure.
* @param destCapacity The size of the buffer (number of bytes). If it is 0, then
* dest may be NULL and the function will only return the length of the result
* without writing any of the result string.
* @param edits Records edits for index mapping, working with styled text,
* and getting only changes (if any).
* The Edits contents is undefined if any error occurs.
* This function calls edits->reset() first unless
* options includes U_EDITS_NO_RESET. edits can be NULL.
* @param errorCode Reference to an in/out error code value
* which must not indicate a failure before the function call.
* @return The length of the result string, if successful.
* When the result would be longer than destCapacity,
* the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
*
* @see ucasemap_utf8ToTitle
* @stable ICU 59
*/
static int32_t utf8ToTitle(
const char *locale, uint32_t options, BreakIterator *iter,
const char *src, int32_t srcLength,
char *dest, int32_t destCapacity, Edits *edits,
UErrorCode &errorCode);
#endif // UCONFIG_NO_BREAK_ITERATION
/**
* Case-folds a UTF-8 string and optionally records edits.
*
* Case folding is locale-independent and not context-sensitive,
* but there is an option for whether to include or exclude mappings for dotted I
* and dotless i that are marked with 'T' in CaseFolding.txt.
*
* The result may be longer or shorter than the original.
* The source string and the destination buffer must not overlap.
*
* @param options Options bit set, usually 0. See U_OMIT_UNCHANGED_TEXT, U_EDITS_NO_RESET,
* U_FOLD_CASE_DEFAULT, U_FOLD_CASE_EXCLUDE_SPECIAL_I.
* @param src The original string.
* @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
* @param dest A buffer for the result string. The result will be NUL-terminated if
* the buffer is large enough.
* The contents is undefined in case of failure.
* @param destCapacity The size of the buffer (number of bytes). If it is 0, then
* dest may be NULL and the function will only return the length of the result
* without writing any of the result string.
* @param edits Records edits for index mapping, working with styled text,
* and getting only changes (if any).
* The Edits contents is undefined if any error occurs.
* This function calls edits->reset() first unless
* options includes U_EDITS_NO_RESET. edits can be NULL.
* @param errorCode Reference to an in/out error code value
* which must not indicate a failure before the function call.
* @return The length of the result string, if successful.
* When the result would be longer than destCapacity,
* the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
*
* @see ucasemap_utf8FoldCase
* @stable ICU 59
*/
static int32_t utf8Fold(
uint32_t options,
const char *src, int32_t srcLength,
char *dest, int32_t destCapacity, Edits *edits,
UErrorCode &errorCode);
private:
CaseMap() = delete;
CaseMap(const CaseMap &other) = delete;
CaseMap &operator=(const CaseMap &other) = delete;
};
U_NAMESPACE_END
#endif // __CASEMAP_H__

302
icu/unicode/char16ptr.h Normal file
View File

@ -0,0 +1,302 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// char16ptr.h
// created: 2017feb28 Markus W. Scherer
#ifndef __CHAR16PTR_H__
#define __CHAR16PTR_H__
#include <cstddef>
#include "unicode/utypes.h"
/**
* \file
* \brief C++ API: char16_t pointer wrappers with
* implicit conversion from bit-compatible raw pointer types.
* Also conversion functions from char16_t * to UChar * and OldUChar *.
*/
U_NAMESPACE_BEGIN
/**
* \def U_ALIASING_BARRIER
* Barrier for pointer anti-aliasing optimizations even across function boundaries.
* @internal
*/
#ifdef U_ALIASING_BARRIER
// Use the predefined value.
#elif (defined(__clang__) || defined(__GNUC__)) && U_PLATFORM != U_PF_BROWSER_NATIVE_CLIENT
# define U_ALIASING_BARRIER(ptr) asm volatile("" : : "rm"(ptr) : "memory")
#endif
/**
* char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
* @stable ICU 59
*/
class U_COMMON_API Char16Ptr U_FINAL {
public:
/**
* Copies the pointer.
* @param p pointer
* @stable ICU 59
*/
inline Char16Ptr(char16_t *p);
#if !U_CHAR16_IS_TYPEDEF
/**
* Converts the pointer to char16_t *.
* @param p pointer to be converted
* @stable ICU 59
*/
inline Char16Ptr(uint16_t *p);
#endif
#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
/**
* Converts the pointer to char16_t *.
* (Only defined if U_SIZEOF_WCHAR_T==2.)
* @param p pointer to be converted
* @stable ICU 59
*/
inline Char16Ptr(wchar_t *p);
#endif
/**
* nullptr constructor.
* @param p nullptr
* @stable ICU 59
*/
inline Char16Ptr(std::nullptr_t p);
/**
* Destructor.
* @stable ICU 59
*/
inline ~Char16Ptr();
/**
* Pointer access.
* @return the wrapped pointer
* @stable ICU 59
*/
inline char16_t *get() const;
/**
* char16_t pointer access via type conversion (e.g., static_cast).
* @return the wrapped pointer
* @stable ICU 59
*/
inline operator char16_t *() const { return get(); }
private:
Char16Ptr() = delete;
#ifdef U_ALIASING_BARRIER
template<typename T> static char16_t *cast(T *t) {
U_ALIASING_BARRIER(t);
return reinterpret_cast<char16_t *>(t);
}
char16_t *p_;
#else
union {
char16_t *cp;
uint16_t *up;
wchar_t *wp;
} u_;
#endif
};
#ifdef U_ALIASING_BARRIER
Char16Ptr::Char16Ptr(char16_t *p) : p_(p) {}
#if !U_CHAR16_IS_TYPEDEF
Char16Ptr::Char16Ptr(uint16_t *p) : p_(cast(p)) {}
#endif
#if U_SIZEOF_WCHAR_T==2
Char16Ptr::Char16Ptr(wchar_t *p) : p_(cast(p)) {}
#endif
Char16Ptr::Char16Ptr(std::nullptr_t p) : p_(p) {}
Char16Ptr::~Char16Ptr() {
U_ALIASING_BARRIER(p_);
}
char16_t *Char16Ptr::get() const { return p_; }
#else
Char16Ptr::Char16Ptr(char16_t *p) { u_.cp = p; }
#if !U_CHAR16_IS_TYPEDEF
Char16Ptr::Char16Ptr(uint16_t *p) { u_.up = p; }
#endif
#if U_SIZEOF_WCHAR_T==2
Char16Ptr::Char16Ptr(wchar_t *p) { u_.wp = p; }
#endif
Char16Ptr::Char16Ptr(std::nullptr_t p) { u_.cp = p; }
Char16Ptr::~Char16Ptr() {}
char16_t *Char16Ptr::get() const { return u_.cp; }
#endif
/**
* const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
* @stable ICU 59
*/
class U_COMMON_API ConstChar16Ptr U_FINAL {
public:
/**
* Copies the pointer.
* @param p pointer
* @stable ICU 59
*/
inline ConstChar16Ptr(const char16_t *p);
#if !U_CHAR16_IS_TYPEDEF
/**
* Converts the pointer to char16_t *.
* @param p pointer to be converted
* @stable ICU 59
*/
inline ConstChar16Ptr(const uint16_t *p);
#endif
#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
/**
* Converts the pointer to char16_t *.
* (Only defined if U_SIZEOF_WCHAR_T==2.)
* @param p pointer to be converted
* @stable ICU 59
*/
inline ConstChar16Ptr(const wchar_t *p);
#endif
/**
* nullptr constructor.
* @param p nullptr
* @stable ICU 59
*/
inline ConstChar16Ptr(const std::nullptr_t p);
/**
* Destructor.
* @stable ICU 59
*/
inline ~ConstChar16Ptr();
/**
* Pointer access.
* @return the wrapped pointer
* @stable ICU 59
*/
inline const char16_t *get() const;
/**
* char16_t pointer access via type conversion (e.g., static_cast).
* @return the wrapped pointer
* @stable ICU 59
*/
inline operator const char16_t *() const { return get(); }
private:
ConstChar16Ptr() = delete;
#ifdef U_ALIASING_BARRIER
template<typename T> static const char16_t *cast(const T *t) {
U_ALIASING_BARRIER(t);
return reinterpret_cast<const char16_t *>(t);
}
const char16_t *p_;
#else
union {
const char16_t *cp;
const uint16_t *up;
const wchar_t *wp;
} u_;
#endif
};
#ifdef U_ALIASING_BARRIER
ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) : p_(p) {}
#if !U_CHAR16_IS_TYPEDEF
ConstChar16Ptr::ConstChar16Ptr(const uint16_t *p) : p_(cast(p)) {}
#endif
#if U_SIZEOF_WCHAR_T==2
ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) : p_(cast(p)) {}
#endif
ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) : p_(p) {}
ConstChar16Ptr::~ConstChar16Ptr() {
U_ALIASING_BARRIER(p_);
}
const char16_t *ConstChar16Ptr::get() const { return p_; }
#else
ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) { u_.cp = p; }
#if !U_CHAR16_IS_TYPEDEF
ConstChar16Ptr::ConstChar16Ptr(const uint16_t *p) { u_.up = p; }
#endif
#if U_SIZEOF_WCHAR_T==2
ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) { u_.wp = p; }
#endif
ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) { u_.cp = p; }
ConstChar16Ptr::~ConstChar16Ptr() {}
const char16_t *ConstChar16Ptr::get() const { return u_.cp; }
#endif
/**
* Converts from const char16_t * to const UChar *.
* Includes an aliasing barrier if available.
* @param p pointer
* @return p as const UChar *
* @stable ICU 59
*/
inline const UChar *toUCharPtr(const char16_t *p) {
#ifdef U_ALIASING_BARRIER
U_ALIASING_BARRIER(p);
#endif
return reinterpret_cast<const UChar *>(p);
}
/**
* Converts from char16_t * to UChar *.
* Includes an aliasing barrier if available.
* @param p pointer
* @return p as UChar *
* @stable ICU 59
*/
inline UChar *toUCharPtr(char16_t *p) {
#ifdef U_ALIASING_BARRIER
U_ALIASING_BARRIER(p);
#endif
return reinterpret_cast<UChar *>(p);
}
/**
* Converts from const char16_t * to const OldUChar *.
* Includes an aliasing barrier if available.
* @param p pointer
* @return p as const OldUChar *
* @stable ICU 59
*/
inline const OldUChar *toOldUCharPtr(const char16_t *p) {
#ifdef U_ALIASING_BARRIER
U_ALIASING_BARRIER(p);
#endif
return reinterpret_cast<const OldUChar *>(p);
}
/**
* Converts from char16_t * to OldUChar *.
* Includes an aliasing barrier if available.
* @param p pointer
* @return p as OldUChar *
* @stable ICU 59
*/
inline OldUChar *toOldUCharPtr(char16_t *p) {
#ifdef U_ALIASING_BARRIER
U_ALIASING_BARRIER(p);
#endif
return reinterpret_cast<OldUChar *>(p);
}
U_NAMESPACE_END
#endif // __CHAR16PTR_H__

View File

@ -1,3 +1,5 @@
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
********************************************************************
*
@ -76,7 +78,7 @@ U_NAMESPACE_BEGIN
* }
*
* void function1(ForwardCharacterIterator &it) {
* UChar c;
* char16_t c;
* while((c=it.nextPostInc())!=ForwardCharacterIterator::DONE) {
* // use c
* }
@ -147,7 +149,7 @@ public:
* @return the current code unit.
* @stable ICU 2.0
*/
virtual UChar nextPostInc(void) = 0;
virtual char16_t nextPostInc(void) = 0;
/**
* Gets the current code point for returning and advances to the next code point
@ -228,7 +230,7 @@ protected:
* showing a way to convert simple for() loops:
* \code
* void forward2(CharacterIterator &it) {
* UChar c;
* char16_t c;
* for(c=it.firstPostInc(); c!=CharacterIterator::DONE; c=it.nextPostInc()) {
* // use c
* }
@ -247,7 +249,7 @@ protected:
* Backward iteration with a more traditional for() loop:
* \code
* void backward2(CharacterIterator &it) {
* UChar c;
* char16_t c;
* for(c=it.last(); c!=CharacterIterator::DONE; c=it.previous()) {
* // use c
* }
@ -264,7 +266,7 @@ protected:
* // get the position
* int32_t pos=it.getIndex();
* // get the previous code unit
* UChar u=it.previous();
* char16_t u=it.previous();
* // move back one more code unit
* it.move(-1, CharacterIterator::kCurrent);
* // set the position back to where it was
@ -281,7 +283,7 @@ protected:
* Function processing characters, in this example simple output
* <pre>
* \code
* void processChar( UChar c )
* void processChar( char16_t c )
* {
* cout << " " << c;
* }
@ -292,7 +294,7 @@ protected:
* \code
* void traverseForward(CharacterIterator& iter)
* {
* for(UChar c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {
* for(char16_t c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {
* processChar(c);
* }
* }
@ -303,7 +305,7 @@ protected:
* \code
* void traverseBackward(CharacterIterator& iter)
* {
* for(UChar c = iter.last(); c != CharacterIterator.DONE; c = iter.previous()) {
* for(char16_t c = iter.last(); c != CharacterIterator.DONE; c = iter.previous()) {
* processChar(c);
* }
* }
@ -315,7 +317,7 @@ protected:
* \code
* void traverseOut(CharacterIterator& iter, int32_t pos)
* {
* UChar c;
* char16_t c;
* for (c = iter.setIndex(pos);
* c != CharacterIterator.DONE && (Unicode::isLetter(c) || Unicode::isDigit(c));
* c = iter.next()) {}
@ -384,7 +386,7 @@ public:
* @return the first code unit in its iteration range.
* @stable ICU 2.0
*/
virtual UChar first(void) = 0;
virtual char16_t first(void) = 0;
/**
* Sets the iterator to refer to the first code unit in its
@ -394,7 +396,7 @@ public:
* @return the first code unit in its iteration range.
* @stable ICU 2.0
*/
virtual UChar firstPostInc(void);
virtual char16_t firstPostInc(void);
/**
* Sets the iterator to refer to the first code point in its
@ -433,7 +435,7 @@ public:
* @return the last code unit.
* @stable ICU 2.0
*/
virtual UChar last(void) = 0;
virtual char16_t last(void) = 0;
/**
* Sets the iterator to refer to the last code point in its
@ -461,7 +463,7 @@ public:
* @return the "position"-th code unit.
* @stable ICU 2.0
*/
virtual UChar setIndex(int32_t position) = 0;
virtual char16_t setIndex(int32_t position) = 0;
/**
* Sets the iterator to refer to the beginning of the code point
@ -481,7 +483,7 @@ public:
* @return the current code unit.
* @stable ICU 2.0
*/
virtual UChar current(void) const = 0;
virtual char16_t current(void) const = 0;
/**
* Returns the code point the iterator currently refers to.
@ -497,7 +499,7 @@ public:
* @return the next code unit.
* @stable ICU 2.0
*/
virtual UChar next(void) = 0;
virtual char16_t next(void) = 0;
/**
* Advances to the next code point in the iteration range
@ -518,7 +520,7 @@ public:
* @return the previous code unit.
* @stable ICU 2.0
*/
virtual UChar previous(void) = 0;
virtual char16_t previous(void) = 0;
/**
* Advances to the previous code point in the iteration range
@ -567,7 +569,7 @@ public:
* Returns the numeric index in the underlying text-storage
* object of the character the iterator currently refers to
* (i.e., the character returned by current()).
* @return the numberic index in the text-storage object of
* @return the numeric index in the text-storage object of
* the character the iterator currently refers to
* @stable ICU 2.0
*/
@ -605,6 +607,10 @@ public:
* @return the new position
* @stable ICU 2.0
*/
#ifdef move32
// One of the system headers right now is sometimes defining a conflicting macro we don't use
#undef move32
#endif
virtual int32_t move32(int32_t delta, EOrigin origin) = 0;
/**

Some files were not shown because too many files have changed in this diff Show More