Index: lib/runtime/dart/_utils.js |
diff --git a/lib/runtime/dart_utils.js b/lib/runtime/dart/_utils.js |
similarity index 50% |
rename from lib/runtime/dart_utils.js |
rename to lib/runtime/dart/_utils.js |
index a7490b9df544087634dcb8f9b30486aa2a19098a..5dee5707711013639c4a3883cdd68d16af19fe1a 100644 |
--- a/lib/runtime/dart_utils.js |
+++ b/lib/runtime/dart/_utils.js |
@@ -1,70 +1,42 @@ |
-// 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. |
- |
-/* This library defines a set of general javascript utilities for us |
- * by the Dart runtime. |
-*/ |
- |
-var dart_utils = |
- typeof module != "undefined" && module.exports || {}; |
- |
-(function (dart_utils) { |
+dart_library.library('dart/_utils', null, /* Imports */[ |
+], /* Lazy imports */[ |
+], function(exports, dart) { |
'use strict'; |
- |
const defineProperty = Object.defineProperty; |
const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; |
const getOwnPropertyNames = Object.getOwnPropertyNames; |
const getOwnPropertySymbols = Object.getOwnPropertySymbols; |
- |
const hasOwnProperty = Object.prototype.hasOwnProperty; |
- |
- class StrongModeError extends Error { |
- constructor(message) { |
- super(message); |
+ const StrongModeError = (function() { |
+ function StrongModeError(message) { |
+ Error.call(this); |
+ this.message = message; |
} |
- } |
- |
- /** This error indicates a strong mode specific failure. |
- */ |
+ ; |
+ Object.setPrototypeOf(StrongModeError.prototype, Error.prototype); |
+ return StrongModeError; |
+ })(); |
function throwStrongModeError(message) { |
throw new StrongModeError(message); |
} |
- dart_utils.throwStrongModeError = throwStrongModeError; |
- |
- /** This error indicates a bug in the runtime or the compiler. |
- */ |
function throwInternalError(message) { |
throw Error(message); |
} |
- dart_utils.throwInternalError = throwInternalError; |
- |
- function assert(condition) { |
- if (!condition) throwInternalError("The compiler is broken: failed assert"); |
+ function assert_(condition) { |
+ if (!condition) |
+ throwInternalError("The compiler is broken: failed assert"); |
} |
- dart_utils.assert = assert; |
- |
function getOwnNamesAndSymbols(obj) { |
return getOwnPropertyNames(obj).concat(getOwnPropertySymbols(obj)); |
} |
- dart_utils.getOwnNamesAndSymbols = getOwnNamesAndSymbols; |
- |
function safeGetOwnProperty(obj, name) { |
let desc = getOwnPropertyDescriptor(obj, name); |
- if (desc) return desc.value; |
+ if (desc) |
+ return desc.value; |
} |
- dart_utils.safeGetOwnProperty = safeGetOwnProperty; |
- |
- /** |
- * 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). |
function defineLazyProperty(to, name, desc) { |
let init = desc.get; |
let value = null; |
- |
function lazySetter(x) { |
init = null; |
value = x; |
@@ -73,9 +45,8 @@ var dart_utils = |
throwInternalError('circular initialization for field ' + name); |
} |
function lazyGetter() { |
- if (init == null) return value; |
- |
- // Compute and store the value, guarding against reentry. |
+ if (init == null) |
+ return value; |
let f = init; |
init = circularInitError; |
lazySetter(f()); |
@@ -83,51 +54,53 @@ var dart_utils = |
} |
desc.get = lazyGetter; |
desc.configurable = true; |
- if (desc.set) desc.set = lazySetter; |
+ if (desc.set) |
+ desc.set = lazySetter; |
return defineProperty(to, name, desc); |
} |
- dart_utils.defineLazyProperty = defineLazyProperty; |
- |
function defineLazy(to, from) { |
for (let name of getOwnNamesAndSymbols(from)) { |
defineLazyProperty(to, name, getOwnPropertyDescriptor(from, name)); |
} |
} |
- dart_utils.defineLazy = defineLazy; |
- |
function defineMemoizedGetter(obj, name, getter) { |
return defineLazyProperty(obj, name, {get: getter}); |
} |
- dart_utils.defineMemoizedGetter = defineMemoizedGetter; |
- |
function copyTheseProperties(to, from, names) { |
for (let name of names) { |
defineProperty(to, name, getOwnPropertyDescriptor(from, name)); |
} |
return to; |
} |
- dart_utils.copyTheseProperties = copyTheseProperties; |
- |
- /** |
- * Copy properties from source to destination object. |
- * This operation is commonly called `mixin` in JS. |
- */ |
function copyProperties(to, from) { |
return copyTheseProperties(to, from, getOwnNamesAndSymbols(from)); |
} |
- dart_utils.copyProperties = copyProperties; |
- |
- /** Exports from one Dart module to another. */ |
function export_(to, from, show, hide) { |
if (show == void 0) { |
show = getOwnNamesAndSymbols(from); |
} |
if (hide != void 0) { |
var hideMap = new Set(hide); |
- show = show.filter((k) => !hideMap.has(k)); |
+ show = show.filter(k => !hideMap.has(k)); |
} |
return copyTheseProperties(to, from, show); |
} |
- dart_utils.export = export_; |
- |
-})(dart_utils); |
+ // Exports: |
+ exports.defineProperty = defineProperty; |
+ exports.getOwnPropertyDescriptor = getOwnPropertyDescriptor; |
+ exports.getOwnPropertyNames = getOwnPropertyNames; |
+ exports.getOwnPropertySymbols = getOwnPropertySymbols; |
+ exports.hasOwnProperty = hasOwnProperty; |
+ exports.StrongModeError = StrongModeError; |
+ exports.throwStrongModeError = throwStrongModeError; |
+ exports.throwInternalError = throwInternalError; |
+ exports.assert_ = assert_; |
+ exports.getOwnNamesAndSymbols = getOwnNamesAndSymbols; |
+ exports.safeGetOwnProperty = safeGetOwnProperty; |
+ exports.defineLazyProperty = defineLazyProperty; |
+ exports.defineLazy = defineLazy; |
+ exports.defineMemoizedGetter = defineMemoizedGetter; |
+ exports.copyTheseProperties = copyTheseProperties; |
+ exports.copyProperties = copyProperties; |
+ exports.export_ = export_; |
+}); |