From 15eddecc340aeb35f4d47c5b51e44e9e05ff1668 Mon Sep 17 00:00:00 2001 From: Lucas Dohmen Date: Wed, 20 Jun 2012 16:43:08 +0200 Subject: [PATCH] Revert "Monkeypatches have their own module now." This reverts commit d01b16a930cfc5a47174d7e24a1742c20f874318. Conflicts: js/common/modules/monkeypatches.js --- js/common/modules/graph.js | 11 +---- js/common/modules/monkeypatches.js | 67 +++++++++++------------------- js/server/js-server.h | 24 +++++++++++ 3 files changed, 49 insertions(+), 53 deletions(-) diff --git a/js/common/modules/graph.js b/js/common/modules/graph.js index 75c47b4639..edb42bf9d2 100644 --- a/js/common/modules/graph.js +++ b/js/common/modules/graph.js @@ -6,7 +6,7 @@ /*global require, WeakDictionary, exports */ //////////////////////////////////////////////////////////////////////////////// -/// @brief Graph interface to the database +/// @brief JavaScript actions functions /// /// @file /// @@ -40,15 +40,6 @@ var internal = require("internal"), findOrCreateCollectionByName, findOrCreateEdgeCollectionByName; -// ----------------------------------------------------------------------------- -// --SECTION-- private methods -// ----------------------------------------------------------------------------- - -//////////////////////////////////////////////////////////////////////////////// -/// @addtogroup ArangoGraph -/// @{ -//////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// /// @brief find or create a collection by name //////////////////////////////////////////////////////////////////////////////// diff --git a/js/common/modules/monkeypatches.js b/js/common/modules/monkeypatches.js index 7e8a9f5b65..1a41b13f9f 100644 --- a/js/common/modules/monkeypatches.js +++ b/js/common/modules/monkeypatches.js @@ -1,44 +1,11 @@ -/*jslint indent: 2, - nomen: true, - maxlen: 100, - sloppy: true, - plusplus: true */ - -//////////////////////////////////////////////////////////////////////////////// -/// @brief Monkeypatches to built-in Classes -/// -/// @file -/// -/// DISCLAIMER -/// -/// Copyright 2010-2012 triagens GmbH, Cologne, Germany -/// -/// Licensed under the Apache License, Version 2.0 (the "License"); -/// you may not use this file except in compliance with the License. -/// You may obtain a copy of the License at -/// -/// http://www.apache.org/licenses/LICENSE-2.0 -/// -/// Unless required by applicable law or agreed to in writing, software -/// distributed under the License is distributed on an "AS IS" BASIS, -/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -/// See the License for the specific language governing permissions and -/// limitations under the License. -/// -/// Copyright holder is triAGENS GmbH, Cologne, Germany -/// -/// @author Dr. Frank Celler, Lucas Dohmen -/// @author Copyright 2011-2012, triAGENS GmbH, Cologne, Germany -//////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////// /// @brief remove last occurrence of element from an array //////////////////////////////////////////////////////////////////////////////// Object.defineProperty(Array.prototype, "removeLastOccurrenceOf", { value: function (element) { - return this.splice(this.lastIndexOf(element), 1); + var index = this.lastIndexOf(element); + return this.splice(index, 1); } }); @@ -71,10 +38,17 @@ Object.defineProperty(Array.prototype, "intersect", { //////////////////////////////////////////////////////////////////////////////// Object.defineProperty(Object.prototype, "shallowCopy", { - get: function () { - return this.propertyKeys.reduce(function (previousValue, key) { - previousValue[key] = this[key]; return previousValue; - }, {}); + get: function() { + var shallow = {}, + key; + + for (key in this) { + if (this.hasOwnProperty(key) && key[0] !== '_' && key[0] !== '$') { + shallow[key] = this[key]; + } + } + + return shallow; } }); @@ -83,10 +57,17 @@ Object.defineProperty(Object.prototype, "shallowCopy", { //////////////////////////////////////////////////////////////////////////////// Object.defineProperty(Object.prototype, "propertyKeys", { - get: function () { - return Object.keys(this).filter(function (element) { - return (element[0] !== '_' && element[0] !== '$'); - }); + get: function() { + var keys = [], + key; + + for (key in this) { + if (this.hasOwnProperty(key) && key[0] !== '_' && key[0] !== '$') { + keys.push(key); + } + } + + return keys; } }); diff --git a/js/server/js-server.h b/js/server/js-server.h index f62f35bd37..2fabf76154 100644 --- a/js/server/js-server.h +++ b/js/server/js-server.h @@ -107,6 +107,30 @@ static string JS_server_server = "////////////////////////////////////////////////////////////////////////////////\n" "\n" "// -----------------------------------------------------------------------------\n" + "// --SECTION-- Module \"monkeypatches\"\n" + "// -----------------------------------------------------------------------------\n" + "\n" + "////////////////////////////////////////////////////////////////////////////////\n" + "/// @addtogroup V8ModuleMonkeypatches\n" + "/// @{\n" + "////////////////////////////////////////////////////////////////////////////////\n" + "\n" + "(function () {\n" + " var console = require(\"console\");\n" + "\n" + " try {\n" + " require(\"monkeypatches\");\n" + " }\n" + " catch (err) {\n" + " console.error(\"while loading 'monkeypatches' module: %s\", err);\n" + " }\n" + "}());\n" + "\n" + "////////////////////////////////////////////////////////////////////////////////\n" + "/// @}\n" + "////////////////////////////////////////////////////////////////////////////////\n" + "\n" + "// -----------------------------------------------------------------------------\n" "// --SECTION-- ShapedJson\n" "// -----------------------------------------------------------------------------\n" "\n"