diff options
author | Ulrich-Matthias Schäfer <ulima.ums@googlemail.com> | 2018-12-03 16:19:21 +0100 |
---|---|---|
committer | Ulrich-Matthias Schäfer <ulima.ums@googlemail.com> | 2018-12-03 16:19:21 +0100 |
commit | 6d164340d99434b9c11099a2e74d7cf4a4a7e322 (patch) | |
tree | c98d3b295f53c58f6affdb62d5df0ee546c29bdf /src | |
parent | 135f9d03c11a295ff5a9e4bdc4683e8ea35e2f38 (diff) | |
download | svg.js-6d164340d99434b9c11099a2e74d7cf4a4a7e322.tar.gz svg.js-6d164340d99434b9c11099a2e74d7cf4a4a7e322.zip |
fixed methods not returning this and missing methods on List
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/optional/arrange.js | 2 | ||||
-rw-r--r-- | src/modules/optional/sugar.js | 2 | ||||
-rw-r--r-- | src/types/List.js | 9 | ||||
-rw-r--r-- | src/utils/adopter.js | 2 | ||||
-rw-r--r-- | src/utils/methods.js | 2 |
5 files changed, 14 insertions, 3 deletions
diff --git a/src/modules/optional/arrange.js b/src/modules/optional/arrange.js index f06509a..7c9d994 100644 --- a/src/modules/optional/arrange.js +++ b/src/modules/optional/arrange.js @@ -99,11 +99,13 @@ export function after (element) { export function insertBefore (element) { element = makeInstance(element) element.before(this) + return this } export function insertAfter (element) { element = makeInstance(element) element.after(this) + return this } registerMethods('Dom', { diff --git a/src/modules/optional/sugar.js b/src/modules/optional/sugar.js index 18f3e78..d4255c3 100644 --- a/src/modules/optional/sugar.js +++ b/src/modules/optional/sugar.js @@ -96,7 +96,7 @@ registerMethods([ 'Element', 'Runner' ], { : (direction === 'y') ? [ 0, around ] : isFinite(direction) ? [ direction, direction ] : [ 0, 0 ] - this.transform({ flip: directionString, origin: origin }, true) + return this.transform({ flip: directionString, origin: origin }, true) }, // Opacity diff --git a/src/types/List.js b/src/types/List.js index ccdf11d..44f0fed 100644 --- a/src/types/List.js +++ b/src/types/List.js @@ -30,8 +30,17 @@ extend(List, { } }) +const reserved = ['toArray', 'constructor', 'each'] + List.extend = function (methods) { methods = methods.reduce((obj, name) => { + // Don't overwrite own methods + if (reserved.includes(name)) return obj + + // Don't add private methods + if (name[0] === '_') return obj + + // Relay every call to each() obj[name] = function (...attrs) { return this.each(name, ...attrs) } diff --git a/src/utils/adopter.js b/src/utils/adopter.js index 34b853e..f091c96 100644 --- a/src/utils/adopter.js +++ b/src/utils/adopter.js @@ -75,7 +75,7 @@ export function register (element, name = element.name, asRoot = false) { elements[name] = element if (asRoot) elements[root] = element - addMethodNames(Object.keys(element.prototype)) + addMethodNames(Object.getOwnPropertyNames(element.prototype)) return element } diff --git a/src/utils/methods.js b/src/utils/methods.js index bc05a70..e957213 100644 --- a/src/utils/methods.js +++ b/src/utils/methods.js @@ -16,7 +16,7 @@ export function registerMethods (name, m) { return } - addMethodNames(Object.keys(m)) + addMethodNames(Object.getOwnPropertyNames(m)) methods[name] = Object.assign(methods[name] || {}, m) } |