Simplify preserving of native classes in tests

This commit is contained in:
Jürg Lehni 2019-06-09 13:42:20 +02:00
parent c30767ed2e
commit 10bdafa826
2 changed files with 8 additions and 23 deletions

View file

@ -36,13 +36,6 @@ if (typeof window === 'object') {
// the code the 2nd time around.
load(root + 'src/load.js');
} else {
// Some native javascript classes have name collisions with Paper.js
// classes. Store them to be able to use them later in tests.
NativeClasses = {
Event: Event,
MouseEvent: MouseEvent
};
include('options.js');
// Load constants.js, required by the on-the-fly preprocessing:
include('constants.js');

View file

@ -35,14 +35,11 @@ if (isNode) {
}
// Some native javascript classes have name collisions with Paper.js classes.
// If they have not already been stored in src/load.js, we dot it now.
if (!isNode && typeof NativeClasses === 'undefined')
{
NativeClasses = {
// Store them before `paper.install()` to be able to use them later in tests.
var nativeClasses = {
Event: Event,
MouseEvent: MouseEvent
};
}
};
// The unit-tests expect the paper classes to be global.
paper.install(scope);
@ -662,8 +659,8 @@ var MouseEventPolyfill = function(type, params) {
);
return mouseEvent;
};
MouseEventPolyfill.prototype = typeof NativeClasses !== 'undefined'
&& NativeClasses.Event.prototype || Event.prototype;
MouseEventPolyfill.prototype = nativeClasses.Event.prototype;
var triggerMouseEvent = function(type, point, target) {
// Depending on event type, events have to be triggered on different
@ -676,14 +673,9 @@ var triggerMouseEvent = function(type, point, target) {
// If `gulp load` was run, there is a name collision between paper Event /
// MouseEvent and native javascript classes. In this case, we need to use
// native classes stored in global NativeClasses object instead.
var constructor = typeof NativeClasses !== 'undefined'
&& NativeClasses.MouseEvent || MouseEvent;
// MouseEvent class does not exist in PhantomJS, so in that case, we need to
// use a polyfill method.
if (typeof constructor !== 'function') {
constructor = MouseEventPolyfill;
}
var constructor = nativeClasses.MouseEvent || MouseEventPolyfill;
var event = new constructor(type, {
bubbles: true,