diff --git a/BUILD.gn b/BUILD.gn
index f0ecb31..d0f2370 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -39,394 +39,370 @@
   include_dirs = [ "Source/WebKit/fuchsia" ]
 }
 
-# The default toolchain is the non-shared toolchain.
-if (current_toolchain == default_toolchain) {
-  group("webkit") {
-    public_deps = [
-      ":webkit_shared(//build/toolchain/fuchsia:${target_cpu}-shared)",
-    ]
-    public_configs = [ ":webkit_config" ]
+shared_library("webkit_shared") {
+  output_name = "libwebkit"
+
+  deps = [
+    ":WebKit",
+  ]
+  public_configs = [ ":webkit_config" ]
+}
+
+config("features") {
+  # Target configuration - what OS we are building for, what libraries we use.
+  defines = [
+    "OS_FUCHSIA=1",
+    "USE_CAIRO=1",
+    "USE_CURL=1",
+    "USE_HARFBUZZ=1",
+    "BUILDING_WITH_CMAKE",  # A lie, but we are using cmakeconfig.h
+  ]
+
+  # Features of our build.
+  defines += [
+    "HAVE_ACCESSIBILITY=1",
+    "HAVE_CONFIG_H=1",
+    "HAVE_FEATURES_H=1",
+
+    #"NDEBUG",
+  ]
+
+  # Where we put cmakeconfig.h
+  include_dirs = [ "Source/config" ]
+}
+
+config("flags") {
+  cflags = [
+    "-Wall",
+    "-Wcast-align",
+    "-Wextra",
+    "-Wformat-security",
+    "-Wmissing-format-attribute",
+    "-Wno-format",
+    "-Wno-expansion-to-defined",
+    "-Wno-max-unsigned-zero",
+    "-Wno-parentheses-equality",
+    "-Wno-unused-function",
+    "-Wno-unused-label",
+    "-Wno-unused-lambda-capture",
+    "-Wno-unused-parameter",
+    "-Wno-unused-variable",
+    "-Wno-pessimizing-move",
+    "-Wno-tautological-compare",
+    "-Wpointer-arith",
+    "-Wundef",
+    "-Wwrite-strings",
+  ]
+}
+
+source_set("WebKit") {
+  sources = WebKit_sources
+
+  deps = [
+    ":JavaScriptCore",
+    ":WebCore",
+    ":wtf",
+  ]
+
+  configs += [
+    ":features",
+    ":flags",
+  ]
+  configs -= [
+    "//build/config/fuchsia:safestack",
+    "//build/config:symbol_visibility_hidden",
+  ]
+
+  defines = [ "BUILDING_WebKit" ]
+
+  include_dirs = [
+    ".",
+    "DerivedSources",
+    "DerivedSources/ForwardingHeaders",
+    "DerivedSources/ForwardingHeaders/JavaScriptCore",
+    "DerivedSources/ForwardingHeaders/WebCore",
+    "DerivedSources/ForwardingHeaders/WebKitLegacy",
+    "DerivedSources/JavaScriptCore",
+    "DerivedSources/WebCore",
+    "DerivedSources/WebKitLegacy",
+    "Source",
+    "Source/WebKit/Storage",
+    "Source/WebKit/WebCoreSupport",
+    "Source/WebKit/fuchsia",
+    "Source/WebKit/fuchsia/WebCoreSupport",
+  ]
+  cflags = [ "-includeWebKitPrefix.h" ]
+}
+
+config("WebCore_config") {
+  include_dirs = [
+    ".",
+    "DerivedSources",
+    "DerivedSources/WebCore",
+    "Source/ThirdParty/ANGLE",
+    "Source/ThirdParty/ANGLE/include/KHR",
+    "Source/WebCore/Modules/airplay",
+    "Source/WebCore/Modules/applepay",
+    "Source/WebCore/Modules/battery",
+    "Source/WebCore/Modules/encryptedmedia",
+    "Source/WebCore/Modules/fetch",
+    "Source/WebCore/Modules/geolocation",
+    "Source/WebCore/Modules/indexeddb",
+    "Source/WebCore/Modules/indexeddb/client",
+    "Source/WebCore/Modules/indexeddb/server",
+    "Source/WebCore/Modules/indexeddb/shared",
+    "Source/WebCore/Modules/indieui",
+    "Source/WebCore/Modules/mediacontrols",
+    "Source/WebCore/Modules/mediasession",
+    "Source/WebCore/Modules/mediasource",
+    "Source/WebCore/Modules/mediastream",
+    "Source/WebCore/Modules/navigatorcontentutils",
+    "Source/WebCore/Modules/notifications",
+    "Source/WebCore/Modules/plugins",
+    "Source/WebCore/Modules/proximity",
+    "Source/WebCore/Modules/quota",
+    "Source/WebCore/Modules/speech",
+    "Source/WebCore/Modules/streams",
+    "Source/WebCore/Modules/vibration",
+    "Source/WebCore/Modules/webaudio",
+    "Source/WebCore/Modules/webdatabase",
+    "Source/WebCore/Modules/websockets",
+    "Source/WebCore/accessibility",
+    "Source/WebCore/animation",
+    "Source/WebCore/bindings",
+    "Source/WebCore/bindings/generic",
+    "Source/WebCore/bindings/js",
+    "Source/WebCore/bridge",
+    "Source/WebCore/bridge/c",
+    "Source/WebCore/bridge/jsc",
+    "Source/WebCore/contentextensions",
+    "Source/WebCore/crypto",
+    "Source/WebCore/crypto/algorithms",
+    "Source/WebCore/crypto/keys",
+    "Source/WebCore/crypto/parameters",
+    "Source/WebCore/css",
+    "Source/WebCore/css/parser",
+    "Source/WebCore/cssjit",
+    "Source/WebCore/dom",
+    "Source/WebCore/dom/default",
+    "Source/WebCore/editing",
+    "Source/WebCore/fileapi",
+    "Source/WebCore/history",
+    "Source/WebCore/html",
+    "Source/WebCore/html/canvas",
+    "Source/WebCore/html/forms",
+    "Source/WebCore/html/parser",
+    "Source/WebCore/html/shadow",
+    "Source/WebCore/html/track",
+    "Source/WebCore/inspector",
+    "Source/WebCore/loader",
+    "Source/WebCore/loader/appcache",
+    "Source/WebCore/loader/archive",
+    "Source/WebCore/loader/archive/mhtml",
+    "Source/WebCore/loader/cache",
+    "Source/WebCore/loader/icon",
+    "Source/WebCore/mathml",
+    "Source/WebCore/page",
+    "Source/WebCore/page/animation",
+    "Source/WebCore/page/csp",
+    "Source/WebCore/page/scrolling",
+    "Source/WebCore/platform",
+    "Source/WebCore/platform/animation",
+    "Source/WebCore/platform/audio",
+    "Source/WebCore/platform/cairo",
+    "Source/WebCore/platform/crypto",
+    "Source/WebCore/platform/gamepad",
+    "Source/WebCore/platform/gamepad/deprecated",
+    "Source/WebCore/platform/gamepad/linux",
+    "Source/WebCore/platform/graphics",
+    "Source/WebCore/platform/graphics/cairo",
+    "Source/WebCore/platform/graphics/cpu/arm",
+    "Source/WebCore/platform/graphics/cpu/arm/filters",
+    "Source/WebCore/platform/graphics/displaylists",
+    "Source/WebCore/platform/graphics/filters",
+    "Source/WebCore/platform/graphics/freetype",
+    "Source/WebCore/platform/graphics/harfbuzz",
+    "Source/WebCore/platform/graphics/harfbuzz/ng",
+    "Source/WebCore/platform/graphics/opengl",
+    "Source/WebCore/platform/graphics/opentype",
+    "Source/WebCore/platform/graphics/transforms",
+    "Source/WebCore/platform/image-decoders",
+    "Source/WebCore/platform/image-decoders/bmp",
+    "Source/WebCore/platform/image-decoders/gif",
+    "Source/WebCore/platform/image-decoders/ico",
+    "Source/WebCore/platform/image-decoders/jpeg",
+    "Source/WebCore/platform/image-decoders/png",
+    "Source/WebCore/platform/image-decoders/webp",
+    "Source/WebCore/platform/mediastream",
+    "Source/WebCore/platform/mock",
+    "Source/WebCore/platform/mock/mediasource",
+    "Source/WebCore/platform/network",
+    "Source/WebCore/platform/network/curl",
+    "Source/WebCore/platform/sql",
+    "Source/WebCore/platform/text",
+    "Source/WebCore/platform/text/icu",
+    "Source/WebCore/plugins",
+    "Source/WebCore/rendering",
+    "Source/WebCore/rendering/line",
+    "Source/WebCore/rendering/mathml",
+    "Source/WebCore/rendering/shapes",
+    "Source/WebCore/rendering/style",
+    "Source/WebCore/rendering/svg",
+    "Source/WebCore/replay",
+    "Source/WebCore/storage",
+    "Source/WebCore/style",
+    "Source/WebCore/svg",
+    "Source/WebCore/svg/animation",
+    "Source/WebCore/svg/graphics",
+    "Source/WebCore/svg/graphics/filters",
+    "Source/WebCore/svg/properties",
+    "Source/WebCore/testing",
+    "Source/WebCore/websockets",
+    "Source/WebCore/workers",
+    "Source/WebCore/xml",
+    "Source/WebCore/xml/parser",
+    "Source/WebCore",
+  ]
+  defines = []
+}
+
+static_library("WebCore") {
+  sources = WebCore_sources + WebCoreDerivedSources_sources
+
+  public_deps = [
+    ":JavaScriptCore",
+    ":wtf",
+    "//third_party/boringssl",
+    "//third_party/cairo",
+    "//third_party/curl:libcurl",
+    "//third_party/freetype2",
+    "//third_party/harfbuzz",
+    "//third_party/icu:icui18n",
+    "//third_party/icu:icuuc",
+    "//third_party/libjpeg-turbo:libjpeg",
+    "//third_party/libpng",
+    "//third_party/libxml2",
+    "//third_party/sqlite",
+    "//third_party/zlib",
+  ]
+
+  public_configs = [ ":WebCore_config" ]
+
+  configs += [
+    ":features",
+    ":flags",
+  ]
+  configs -= [ "//build/config/fuchsia:safestack" ]
+}
+
+config("JavaScriptCore_config") {
+  include_dirs = [
+    "Source/JavaScriptCore",
+    "Source/JavaScriptCore/..",
+    "Source/JavaScriptCore/API",
+    "Source/JavaScriptCore/ForwardingHeaders",
+    "Source/JavaScriptCore/assembler",
+    "Source/JavaScriptCore/b3",
+    "Source/JavaScriptCore/b3/air",
+    "Source/JavaScriptCore/bindings",
+    "Source/JavaScriptCore/builtins",
+    "Source/JavaScriptCore/bytecode",
+    "Source/JavaScriptCore/bytecompiler",
+    "Source/JavaScriptCore/dfg",
+    "Source/JavaScriptCore/disassembler",
+    "Source/JavaScriptCore/disassembler/udis86",
+    "Source/JavaScriptCore/ftl",
+    "Source/JavaScriptCore/heap",
+    "Source/JavaScriptCore/debugger",
+    "Source/JavaScriptCore/inspector",
+    "Source/JavaScriptCore/inspector/agents",
+    "Source/JavaScriptCore/inspector/augmentable",
+    "Source/JavaScriptCore/inspector/remote",
+    "Source/JavaScriptCore/interpreter",
+    "Source/JavaScriptCore/jit",
+    "Source/JavaScriptCore/llint",
+    "Source/JavaScriptCore/parser",
+    "Source/JavaScriptCore/profiler",
+    "Source/JavaScriptCore/replay",
+    "Source/JavaScriptCore/runtime",
+    "Source/JavaScriptCore/tools",
+    "Source/JavaScriptCore/wasm",
+    "Source/JavaScriptCore/yarr",
+    "DerivedSources/JavaScriptCore",
+    "DerivedSources/JavaScriptCore/inspector",
+    "DerivedSources/ForwardingHeaders",
+  ]
+  if (is_debug) {
+    include_dirs += [ "DerivedSources/JavaScriptCore/Debug" ]
+  } else {
+    include_dirs += [ "DerivedSources/JavaScriptCore/Release" ]
   }
-} else {
-  shared_library("webkit_shared") {
-    output_name = "libwebkit"
+}
 
-    deps = [
-      ":WebKit",
-    ]
-    public_configs = [ ":webkit_config" ]
-  }
+static_library("JavaScriptCore") {
+  sources = JavaScriptCore_sources + JavaScriptCoreDerivedSources_sources +
+            JavaScriptCore_inspectorDerivedSources_sources
 
-  config("features") {
-    # Target configuration - what OS we are building for, what libraries we use.
-    defines = [
-      "OS_FUCHSIA=1",
-      "USE_CAIRO=1",
-      "USE_CURL=1",
-      "USE_HARFBUZZ=1",
-      "BUILDING_WITH_CMAKE", # A lie, but we are using cmakeconfig.h
-    ]
+  public_configs = [ ":JavaScriptCore_config" ]
+  configs += [
+    ":features",
+    ":flags",
+  ]
+  configs -= [ "//build/config/fuchsia:safestack" ]
 
-    # Features of our build.
-    defines += [
-      "HAVE_ACCESSIBILITY=1",
-      "HAVE_CONFIG_H=1",
-      "HAVE_FEATURES_H=1",
-#"NDEBUG",
-    ]
+  public_deps = [
+    ":wtf",
+  ]
 
-    # Where we put cmakeconfig.h
-    include_dirs = [ "Source/config" ]
-  }
+  defines = [
+    "BUILDING_JavaScriptCore",
+    "STATICALLY_LINKED_WITH_WTF",
+  ]
+}
 
-  config("flags") {
-    cflags = [
-      "-Wall",
-      "-Wcast-align",
-      "-Wextra",
-      "-Wformat-security",
-      "-Wmissing-format-attribute",
-      "-Wno-format",
-      "-Wno-expansion-to-defined",
-      "-Wno-max-unsigned-zero",
-      "-Wno-parentheses-equality",
-      "-Wno-unused-function",
-      "-Wno-unused-label",
-      "-Wno-unused-lambda-capture",
-      "-Wno-unused-parameter",
-      "-Wno-unused-variable",
-      "-Wno-pessimizing-move",
-      "-Wno-tautological-compare",
-      "-Wpointer-arith",
-      "-Wundef",
-      "-Wwrite-strings",
-    ]
-  }
+config("wtf_config") {
+  include_dirs = [ "Source/WTF" ]
+}
 
-  source_set("WebKit") {
-    sources = WebKit_sources
+config("wtf_private_config") {
+  # WTF has Source/WTF/wtf/unicode/UTF8.h and Source/WTF/wtf on the include
+  # path. The ICU library, which WTF depends on, has <unicode/utf8.h> in its
+  # include path. This means on case-insensitive filesystems, #includes for
+  # <unicode/utf8.h> will match Soruce/WTF/wtf/unicode/UTF8.h, which will
+  # internally include ICU's <unicode/utf8.h>.
 
-    deps = [
-      ":JavaScriptCore",
-      ":WebCore",
-      ":wtf",
-    ]
+  # To get around all this, we manually add ICU's include path to our
+  # include_dirs before adding the WTF headers so includes for
+  # <unicode/utf8.h> match ICU regardless of the case sensitivity of the
+  # filesystem. As it turns out, all of the includes of UTF8.h (uppercase) are
+  # written <wtf/unicode/UTF8.h> so they will unambiguously resolve to
+  # Source/WTF/wtf/unicode/UTF8.h even with this include path first.
+  include_dirs = [ "//third_party/icu/source/common" ]
 
-    configs += [ ":features", ":flags" ]
-    configs -= [
-      "//build/config/fuchsia:safestack",
-      "//build/config:symbol_visibility_hidden",
-    ]
+  include_dirs += [
+    "Source/WTF/wtf",
+    "Source/WTF/wtf/dtoa",
+    "Source/WTF/wtf/text",
+    "Source/WTF/wtf/text/icu",
+    "Source/WTF/wtf/threads",
+    "Source/WTF/wtf/unicode",
+  ]
+}
 
-    defines = [
-       "BUILDING_WebKit",
-    ]
+static_library("wtf") {
+  sources = wtf_sources
 
-    include_dirs = [
-      ".",
-      "DerivedSources",
-      "DerivedSources/ForwardingHeaders",
-      "DerivedSources/ForwardingHeaders/JavaScriptCore",
-      "DerivedSources/ForwardingHeaders/WebCore",
-      "DerivedSources/ForwardingHeaders/WebKitLegacy",
-      "DerivedSources/JavaScriptCore",
-      "DerivedSources/WebCore",
-      "DerivedSources/WebKitLegacy",
-      "Source",
-      "Source/WebKit/Storage",
-      "Source/WebKit/WebCoreSupport",
-      "Source/WebKit/fuchsia",
-      "Source/WebKit/fuchsia/WebCoreSupport",
-    ]
-    cflags = [
-      "-includeWebKitPrefix.h"
-    ]
+  public_configs = [ ":wtf_config" ]
+  public_deps = [
+    "//third_party/icu:icui18n",
+    "//third_party/icu:icuuc",
+  ]
+  configs += [
+    ":features",
+    ":flags",
+    ":wtf_private_config",
+  ]
+  configs -= [ "//build/config/fuchsia:safestack" ]
 
-  }
-
-
-  config("WebCore_config") {
-    include_dirs = [
-      ".",
-      "DerivedSources",
-      "DerivedSources/WebCore",
-      "Source/ThirdParty/ANGLE",
-      "Source/ThirdParty/ANGLE/include/KHR",
-      "Source/WebCore/Modules/airplay",
-      "Source/WebCore/Modules/applepay",
-      "Source/WebCore/Modules/battery",
-      "Source/WebCore/Modules/encryptedmedia",
-      "Source/WebCore/Modules/fetch",
-      "Source/WebCore/Modules/geolocation",
-      "Source/WebCore/Modules/indexeddb",
-      "Source/WebCore/Modules/indexeddb/client",
-      "Source/WebCore/Modules/indexeddb/server",
-      "Source/WebCore/Modules/indexeddb/shared",
-      "Source/WebCore/Modules/indieui",
-      "Source/WebCore/Modules/mediacontrols",
-      "Source/WebCore/Modules/mediasession",
-      "Source/WebCore/Modules/mediasource",
-      "Source/WebCore/Modules/mediastream",
-      "Source/WebCore/Modules/navigatorcontentutils",
-      "Source/WebCore/Modules/notifications",
-      "Source/WebCore/Modules/plugins",
-      "Source/WebCore/Modules/proximity",
-      "Source/WebCore/Modules/quota",
-      "Source/WebCore/Modules/speech",
-      "Source/WebCore/Modules/streams",
-      "Source/WebCore/Modules/vibration",
-      "Source/WebCore/Modules/webaudio",
-      "Source/WebCore/Modules/webdatabase",
-      "Source/WebCore/Modules/websockets",
-      "Source/WebCore/accessibility",
-      "Source/WebCore/animation",
-      "Source/WebCore/bindings",
-      "Source/WebCore/bindings/generic",
-      "Source/WebCore/bindings/js",
-      "Source/WebCore/bridge",
-      "Source/WebCore/bridge/c",
-      "Source/WebCore/bridge/jsc",
-      "Source/WebCore/contentextensions",
-      "Source/WebCore/crypto",
-      "Source/WebCore/crypto/algorithms",
-      "Source/WebCore/crypto/keys",
-      "Source/WebCore/crypto/parameters",
-      "Source/WebCore/css",
-      "Source/WebCore/css/parser",
-      "Source/WebCore/cssjit",
-      "Source/WebCore/dom",
-      "Source/WebCore/dom/default",
-      "Source/WebCore/editing",
-      "Source/WebCore/fileapi",
-      "Source/WebCore/history",
-      "Source/WebCore/html",
-      "Source/WebCore/html/canvas",
-      "Source/WebCore/html/forms",
-      "Source/WebCore/html/parser",
-      "Source/WebCore/html/shadow",
-      "Source/WebCore/html/track",
-      "Source/WebCore/inspector",
-      "Source/WebCore/loader",
-      "Source/WebCore/loader/appcache",
-      "Source/WebCore/loader/archive",
-      "Source/WebCore/loader/archive/mhtml",
-      "Source/WebCore/loader/cache",
-      "Source/WebCore/loader/icon",
-      "Source/WebCore/mathml",
-      "Source/WebCore/page",
-      "Source/WebCore/page/animation",
-      "Source/WebCore/page/csp",
-      "Source/WebCore/page/scrolling",
-      "Source/WebCore/platform",
-      "Source/WebCore/platform/animation",
-      "Source/WebCore/platform/audio",
-      "Source/WebCore/platform/cairo",
-      "Source/WebCore/platform/crypto",
-      "Source/WebCore/platform/gamepad",
-      "Source/WebCore/platform/gamepad/deprecated",
-      "Source/WebCore/platform/gamepad/linux",
-      "Source/WebCore/platform/graphics",
-      "Source/WebCore/platform/graphics/cairo",
-      "Source/WebCore/platform/graphics/cpu/arm",
-      "Source/WebCore/platform/graphics/cpu/arm/filters",
-      "Source/WebCore/platform/graphics/displaylists",
-      "Source/WebCore/platform/graphics/filters",
-      "Source/WebCore/platform/graphics/freetype",
-      "Source/WebCore/platform/graphics/harfbuzz",
-      "Source/WebCore/platform/graphics/harfbuzz/ng",
-      "Source/WebCore/platform/graphics/opengl",
-      "Source/WebCore/platform/graphics/opentype",
-      "Source/WebCore/platform/graphics/transforms",
-      "Source/WebCore/platform/image-decoders",
-      "Source/WebCore/platform/image-decoders/bmp",
-      "Source/WebCore/platform/image-decoders/gif",
-      "Source/WebCore/platform/image-decoders/ico",
-      "Source/WebCore/platform/image-decoders/jpeg",
-      "Source/WebCore/platform/image-decoders/png",
-      "Source/WebCore/platform/image-decoders/webp",
-      "Source/WebCore/platform/mediastream",
-      "Source/WebCore/platform/mock",
-      "Source/WebCore/platform/mock/mediasource",
-      "Source/WebCore/platform/network",
-      "Source/WebCore/platform/network/curl",
-      "Source/WebCore/platform/sql",
-      "Source/WebCore/platform/text",
-      "Source/WebCore/platform/text/icu",
-      "Source/WebCore/plugins",
-      "Source/WebCore/rendering",
-      "Source/WebCore/rendering/line",
-      "Source/WebCore/rendering/mathml",
-      "Source/WebCore/rendering/shapes",
-      "Source/WebCore/rendering/style",
-      "Source/WebCore/rendering/svg",
-      "Source/WebCore/replay",
-      "Source/WebCore/storage",
-      "Source/WebCore/style",
-      "Source/WebCore/svg",
-      "Source/WebCore/svg/animation",
-      "Source/WebCore/svg/graphics",
-      "Source/WebCore/svg/graphics/filters",
-      "Source/WebCore/svg/properties",
-      "Source/WebCore/testing",
-      "Source/WebCore/websockets",
-      "Source/WebCore/workers",
-      "Source/WebCore/xml",
-      "Source/WebCore/xml/parser",
-      "Source/WebCore",
-    ]
-    defines = []
-  }
-
-  static_library("WebCore") {
-    sources = WebCore_sources + WebCoreDerivedSources_sources
-
-    public_deps = [
-      "//third_party/boringssl",
-      "//third_party/cairo",
-      "//third_party/curl:libcurl",
-      "//third_party/freetype2",
-      "//third_party/harfbuzz",
-      "//third_party/icu:icui18n",
-      "//third_party/icu:icuuc",
-      "//third_party/libjpeg-turbo:libjpeg",
-      "//third_party/libpng",
-      "//third_party/libxml2",
-      "//third_party/sqlite",
-      "//third_party/zlib",
-      ":JavaScriptCore",
-      ":wtf",
-    ]
-
-    public_configs = [ ":WebCore_config" ]
-
-    configs += [
-      ":features",
-      ":flags",
-    ]
-    configs -= [
-      "//build/config/fuchsia:safestack",
-    ]
-  }
-
-  config("JavaScriptCore_config") {
-    include_dirs = [
-      "Source/JavaScriptCore",
-      "Source/JavaScriptCore/..",
-      "Source/JavaScriptCore/API",
-      "Source/JavaScriptCore/ForwardingHeaders",
-      "Source/JavaScriptCore/assembler",
-      "Source/JavaScriptCore/b3",
-      "Source/JavaScriptCore/b3/air",
-      "Source/JavaScriptCore/bindings",
-      "Source/JavaScriptCore/builtins",
-      "Source/JavaScriptCore/bytecode",
-      "Source/JavaScriptCore/bytecompiler",
-      "Source/JavaScriptCore/dfg",
-      "Source/JavaScriptCore/disassembler",
-      "Source/JavaScriptCore/disassembler/udis86",
-      "Source/JavaScriptCore/ftl",
-      "Source/JavaScriptCore/heap",
-      "Source/JavaScriptCore/debugger",
-      "Source/JavaScriptCore/inspector",
-      "Source/JavaScriptCore/inspector/agents",
-      "Source/JavaScriptCore/inspector/augmentable",
-      "Source/JavaScriptCore/inspector/remote",
-      "Source/JavaScriptCore/interpreter",
-      "Source/JavaScriptCore/jit",
-      "Source/JavaScriptCore/llint",
-      "Source/JavaScriptCore/parser",
-      "Source/JavaScriptCore/profiler",
-      "Source/JavaScriptCore/replay",
-      "Source/JavaScriptCore/runtime",
-      "Source/JavaScriptCore/tools",
-      "Source/JavaScriptCore/wasm",
-      "Source/JavaScriptCore/yarr",
-      "DerivedSources/JavaScriptCore",
-      "DerivedSources/JavaScriptCore/inspector",
-      "DerivedSources/ForwardingHeaders",
-    ]
-    if (is_debug) {
-      include_dirs += [
-          "DerivedSources/JavaScriptCore/Debug",
-      ]
-    } else {
-      include_dirs += [
-          "DerivedSources/JavaScriptCore/Release",
-      ]
-    }
-  }
-
-  static_library("JavaScriptCore") {
-    sources = JavaScriptCore_sources + JavaScriptCoreDerivedSources_sources +
-              JavaScriptCore_inspectorDerivedSources_sources
-
-    public_configs = [ ":JavaScriptCore_config" ]
-    configs += [
-      ":features",
-      ":flags",
-    ]
-    configs -= [
-      "//build/config/fuchsia:safestack",
-    ]
-
-    public_deps = [
-      ":wtf",
-    ]
-
-    defines = [
-      "BUILDING_JavaScriptCore",
-      "STATICALLY_LINKED_WITH_WTF",
-    ]
-  }
-
-  config("wtf_config") {
-    include_dirs = [
-      "Source/WTF",
-    ]
-  }
-
-  config("wtf_private_config") {
-    # WTF has Source/WTF/wtf/unicode/UTF8.h and Source/WTF/wtf on the include
-    # path. The ICU library, which WTF depends on, has <unicode/utf8.h> in its
-    # include path. This means on case-insensitive filesystems, #includes for
-    # <unicode/utf8.h> will match Soruce/WTF/wtf/unicode/UTF8.h, which will
-    # internally include ICU's <unicode/utf8.h>.
-
-    # To get around all this, we manually add ICU's include path to our
-    # include_dirs before adding the WTF headers so includes for
-    # <unicode/utf8.h> match ICU regardless of the case sensitivity of the
-    # filesystem. As it turns out, all of the includes of UTF8.h (uppercase) are
-    # written <wtf/unicode/UTF8.h> so they will unambiguously resolve to
-    # Source/WTF/wtf/unicode/UTF8.h even with this include path first.
-    include_dirs = [ "//third_party/icu/source/common"]
-
-    include_dirs += [
-      "Source/WTF/wtf",
-      "Source/WTF/wtf/dtoa",
-      "Source/WTF/wtf/text",
-      "Source/WTF/wtf/text/icu",
-      "Source/WTF/wtf/threads",
-      "Source/WTF/wtf/unicode",
-    ]
-  }
-
-  static_library("wtf") {
-    sources = wtf_sources
-
-    public_configs = [ ":wtf_config" ]
-    public_deps = [
-      "//third_party/icu:icui18n",
-      "//third_party/icu:icuuc",
-    ]
-    configs += [
-      ":features",
-      ":flags",
-      ":wtf_private_config",
-    ]
-    configs -= [
-      "//build/config/fuchsia:safestack",
-    ]
-
-    defines = [ "BUILDING_WTF" ]
-  }
+  defines = [ "BUILDING_WTF" ]
 }
