blob: 1730dbc5213891adbd7c705914c5f396229da1b7 [file] [log] [blame]
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
/// This library exists to act as a uniform abstraction layer between the user
/// facing JS interop libraries and backend specific internal representations of
/// JS types.
///
/// For consistency, all of the web backends have a version of this library.
///
/// **WARNING**: You should *not* rely on these runtime types. Not only is this
/// library not guaranteed to be consistent across platforms, these types may
/// change in the future.
library dart._js_types;
import 'dart:_error_utils';
import 'dart:_internal';
import 'dart:_js_helper' as js;
import 'dart:_object_helper';
import 'dart:_string_helper';
import 'dart:_wasm';
import 'dart:collection';
import 'dart:js_interop';
import 'dart:math';
import 'dart:typed_data';
part 'js_array.dart';
part 'js_string.dart';
part 'js_typed_array.dart';
typedef JSAnyRepType = js.JSValue;
typedef JSObjectRepType = js.JSValue;
typedef JSFunctionRepType = js.JSValue;
typedef JSExportedDartFunctionRepType = js.JSValue;
typedef JSArrayRepType = js.JSValue;
typedef JSBoxedDartObjectRepType = js.JSValue;
typedef JSArrayBufferRepType = js.JSValue;
typedef JSDataViewRepType = js.JSValue;
typedef JSTypedArrayRepType = js.JSValue;
typedef JSInt8ArrayRepType = js.JSValue;
typedef JSUint8ArrayRepType = js.JSValue;
typedef JSUint8ClampedArrayRepType = js.JSValue;
typedef JSInt16ArrayRepType = js.JSValue;
typedef JSUint16ArrayRepType = js.JSValue;
typedef JSInt32ArrayRepType = js.JSValue;
typedef JSUint32ArrayRepType = js.JSValue;
typedef JSFloat32ArrayRepType = js.JSValue;
typedef JSFloat64ArrayRepType = js.JSValue;
typedef JSNumberRepType = js.JSValue;
typedef JSBooleanRepType = js.JSValue;
typedef JSStringRepType = js.JSValue;
typedef JSPromiseRepType = js.JSValue;
typedef JSSymbolRepType = js.JSValue;
typedef JSBigIntRepType = js.JSValue;
// While this type is not a JS type, it is here for convenience so we don't need
// to create a new shared library.
typedef ExternalDartReferenceRepType = js.JSValue;
// JSVoid is just a typedef for void. While we could just use JSUndefined, in
// the future we may be able to use this to elide `return`s in JS trampolines.
typedef JSVoidRepType = void;