瀏覽代碼

Changed: emittermixin.js: name Symbols, make _getEmitterListenedTo an exported function.

Szymon Cofalik 9 年之前
父節點
當前提交
48122a5503
共有 2 個文件被更改,包括 21 次插入22 次删除
  1. 2 1
      packages/ckeditor5-utils/src/dom/emittermixin.js
  2. 19 21
      packages/ckeditor5-utils/src/emittermixin.js

+ 2 - 1
packages/ckeditor5-utils/src/dom/emittermixin.js

@@ -8,6 +8,7 @@
  */
 
 import EmitterMixin from '../emittermixin';
+import { _getEmitterListenedTo } from '../emittermixin';
 import uid from '../uid';
 import extend from '../lib/lodash/extend';
 import isNative from '../lib/lodash/isNative';
@@ -109,7 +110,7 @@ const DomEmitterMixin = extend( {}, EmitterMixin, {
 	 * @return {module:utils/dom/emittermixin~ProxyEmitter} ProxyEmitter instance or null.
 	 */
 	_getProxyEmitter( node ) {
-		return this._getEmitterListenedTo( getNodeUID( node ) ) || null;
+		return _getEmitterListenedTo( this, getNodeUID( node ) );
 	}
 } );
 

+ 19 - 21
packages/ckeditor5-utils/src/emittermixin.js

@@ -11,11 +11,8 @@ import EventInfo from './eventinfo';
 import uid from './uid';
 import priorities from './priorities';
 
-// Symbol for private `_listeningTo` property.
-const _listeningTo = Symbol();
-
-// Symbol for private `_emitterId` property.
-const _emitterId = Symbol();
+const _listeningTo = Symbol( 'listeningTo' );
+const _emitterId = Symbol( 'emitterId' );
 
 /**
  * Mixin that injects the events API into its host.
@@ -370,22 +367,6 @@ const EmitterMixin = {
 	},
 
 	/**
-	 * Returns an `EmitterMixin` instance with given `id`, which this emitter is listening to. Returns `null` if
-	 * this emitter do not listen to any emitter identified by `id`.
-	 *
-	 * @protected
-	 * @param {String} id Unique emitter id.
-	 * @returns {EmitterMixin|null}
-	 */
-	_getEmitterListenedTo( id ) {
-		if ( this[ _listeningTo ] && this[ _listeningTo ][ id ] ) {
-			return this[ _listeningTo ][ id ].emitter;
-		}
-
-		return null;
-	},
-
-	/**
 	 * Emitter's unique id.
 	 *
 	 * **Note:** `_emitterId` can be set only once.
@@ -414,6 +395,23 @@ const EmitterMixin = {
 
 export default EmitterMixin;
 
+/**
+ * Checks if `listeningEmitter` listens to an emitter with given `listenedToEmitterId` and if so, returns that emitter.
+ * If not, returns `null`.
+ *
+ * @protected
+ * @param {module:utils/emittermixin~EmitterMixin} listeningEmitter Emitter that listens.
+ * @param {String} listenedToEmitterId Unique emitter id of emitter listened to.
+ * @returns {module:utils/emittermixin~EmitterMixin|null}
+ */
+export function _getEmitterListenedTo( listeningEmitter, listenedToEmitterId ) {
+	if ( listeningEmitter[ _listeningTo ] && listeningEmitter[ _listeningTo ][ listenedToEmitterId ] ) {
+		return listeningEmitter[ _listeningTo ][ listenedToEmitterId ].emitter;
+	}
+
+	return null;
+}
+
 // Gets the internal `_events` property of the given object.
 // `_events` property store all lists with callbacks for registered event names.
 // If there were no events registered on the object, empty `_events` object is created.