aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.12/lib/sdk/core/namespace.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/addon-sdk-1.12/lib/sdk/core/namespace.js')
-rw-r--r--tools/addon-sdk-1.12/lib/sdk/core/namespace.js43
1 files changed, 0 insertions, 43 deletions
diff --git a/tools/addon-sdk-1.12/lib/sdk/core/namespace.js b/tools/addon-sdk-1.12/lib/sdk/core/namespace.js
deleted file mode 100644
index 3ceb73b..0000000
--- a/tools/addon-sdk-1.12/lib/sdk/core/namespace.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-module.metadata = {
- "stability": "unstable"
-};
-
-const create = Object.create;
-const prototypeOf = Object.getPrototypeOf;
-
-/**
- * Returns a new namespace, function that may can be used to access an
- * namespaced object of the argument argument. Namespaced object are associated
- * with owner objects via weak references. Namespaced objects inherit from the
- * owners ancestor namespaced object. If owner's ancestor is `null` then
- * namespaced object inherits from given `prototype`. Namespaces can be used
- * to define internal APIs that can be shared via enclosing `namespace`
- * function.
- * @examples
- * const internals = ns();
- * internals(object).secret = secret;
- */
-function ns() {
- const map = new WeakMap();
- return function namespace(target) {
- if (!target) // If `target` is not an object return `target` itself.
- return target;
- // If target has no namespaced object yet, create one that inherits from
- // the target prototype's namespaced object.
- if (!map.has(target))
- map.set(target, create(namespace(prototypeOf(target) || null)));
-
- return map.get(target);
- };
-};
-
-// `Namespace` is a e4x function in the scope, so we export the function also as
-// `ns` as alias to avoid clashing.
-exports.ns = ns;
-exports.Namespace = ns;