aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorUlrich-Matthias Schäfer <ulima.ums@googlemail.com>2018-12-03 16:19:21 +0100
committerUlrich-Matthias Schäfer <ulima.ums@googlemail.com>2018-12-03 16:19:21 +0100
commit6d164340d99434b9c11099a2e74d7cf4a4a7e322 (patch)
treec98d3b295f53c58f6affdb62d5df0ee546c29bdf /src
parent135f9d03c11a295ff5a9e4bdc4683e8ea35e2f38 (diff)
downloadsvg.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.js2
-rw-r--r--src/modules/optional/sugar.js2
-rw-r--r--src/types/List.js9
-rw-r--r--src/utils/adopter.js2
-rw-r--r--src/utils/methods.js2
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)
}