Index: tool/input_sdk/private/utils.dart |
diff --git a/tool/input_sdk/private/utils.dart b/tool/input_sdk/private/utils.dart |
deleted file mode 100644 |
index a04c780a4f52035ca05c6e549b438b9c2bbce4ae..0000000000000000000000000000000000000000 |
--- a/tool/input_sdk/private/utils.dart |
+++ /dev/null |
@@ -1,115 +0,0 @@ |
-// Copyright (c) 2015, 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. |
-part of dart._runtime; |
- |
-/// This library defines a set of general javascript utilities for us |
-/// by the Dart runtime. |
-// TODO(ochafik): Rewrite some of these in Dart when possible. |
- |
-final defineProperty = JS('', 'Object.defineProperty'); |
-final getOwnPropertyDescriptor = JS('', 'Object.getOwnPropertyDescriptor'); |
-final getOwnPropertyNames = JS('', 'Object.getOwnPropertyNames'); |
-final getOwnPropertySymbols = JS('', 'Object.getOwnPropertySymbols'); |
- |
-final hasOwnProperty = JS('', 'Object.prototype.hasOwnProperty'); |
- |
-// TODO(ochafik): Add ES6 class syntax support to JS intrinsics to avoid this. |
-final StrongModeError = JS('', '''(function() { |
- function StrongModeError(message) { |
- Error.call(this); |
- this.message = message; |
- }; |
- Object.setPrototypeOf(StrongModeError.prototype, Error.prototype); |
- return StrongModeError; |
-})()'''); |
- |
-/// This error indicates a strong mode specific failure. |
-void throwStrongModeError(String message) => JS('', '''(() => { |
- throw new $StrongModeError($message); |
-})()'''); |
- |
-/// This error indicates a bug in the runtime or the compiler. |
-void throwInternalError(String message) => JS('', '''(() => { |
- throw Error($message); |
-})()'''); |
- |
-getOwnNamesAndSymbols(obj) => JS('', '''(() => { |
- return $getOwnPropertyNames($obj).concat($getOwnPropertySymbols($obj)); |
-})()'''); |
- |
-safeGetOwnProperty(obj, String name) => JS('', '''(() => { |
- let desc = $getOwnPropertyDescriptor($obj, $name); |
- if (desc) return desc.value; |
-})()'''); |
- |
-/// Defines a lazy property. |
-/// After initial get or set, it will replace itself with a value property. |
-// TODO(jmesserly): reusing descriptor objects has been shown to improve |
-// performance in other projects (e.g. webcomponents.js ShadowDOM polyfill). |
-defineLazyProperty(to, name, desc) => JS('', '''(() => { |
- let init = $desc.get; |
- let value = null; |
- |
- function lazySetter(x) { |
- init = null; |
- value = x; |
- } |
- function circularInitError() { |
- $throwInternalError('circular initialization for field ' + $name); |
- } |
- function lazyGetter() { |
- if (init == null) return value; |
- |
- // Compute and store the value, guarding against reentry. |
- let f = init; |
- init = circularInitError; |
- lazySetter(f()); |
- return value; |
- } |
- $desc.get = lazyGetter; |
- $desc.configurable = true; |
- if ($desc.set) $desc.set = lazySetter; |
- return $defineProperty($to, $name, $desc); |
-})()'''); |
- |
-void defineLazy(to, from) => JS('', '''(() => { |
- for (let name of $getOwnNamesAndSymbols($from)) { |
- $defineLazyProperty($to, name, $getOwnPropertyDescriptor($from, name)); |
- } |
-})()'''); |
- |
-defineMemoizedGetter(obj, String name, getter) => JS('', '''(() => { |
- return $defineLazyProperty($obj, $name, {get: $getter}); |
-})()'''); |
- |
-copyTheseProperties(to, from, names) => JS('', '''(() => { |
- for (let name of $names) { |
- var desc = $getOwnPropertyDescriptor($from, name); |
- if (desc != void 0) { |
- $defineProperty($to, name, desc); |
- } else { |
- $defineLazyProperty($to, name, () => $from[name]); |
- } |
- } |
- return $to; |
-})()'''); |
- |
-/// Copy properties from source to destination object. |
-/// This operation is commonly called `mixin` in JS. |
-copyProperties(to, from) => JS('', '''(() => { |
- return $copyTheseProperties($to, $from, $getOwnNamesAndSymbols($from)); |
-})()'''); |
- |
-/// Exports from one Dart module to another. |
-@JSExportName('export') |
-export_(to, from, show, hide) => JS('', '''(() => { |
- if ($show == void 0 || $show.length == 0) { |
- $show = $getOwnNamesAndSymbols($from); |
- } |
- if ($hide != void 0) { |
- var hideMap = new Set($hide); |
- $show = $show.filter((k) => !hideMap.has(k)); |
- } |
- return $copyTheseProperties($to, $from, $show); |
-})()'''); |