# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//third_party/WebKit/Source/core/core.gni")

blink_core_sources("typed_arrays") {
  sources = [
    "ArrayBufferViewHelpers.h",
    "DOMArrayBuffer.cpp",
    "DOMArrayBuffer.h",
    "DOMArrayBufferBase.h",
    "DOMArrayBufferView.h",
    "DOMArrayPiece.cpp",
    "DOMArrayPiece.h",
    "DOMDataView.cpp",
    "DOMDataView.h",
    "DOMSharedArrayBuffer.cpp",
    "DOMSharedArrayBuffer.h",
    "DOMTypedArray.cpp",
    "DOMTypedArray.h",
    "FlexibleArrayBufferView.h",
    "TypedFlexibleArrayBufferView.h",
  ]
}
