Browse Source

KERNEL-15856 fix:兼容定时调度

es6^2
Treecat 1 year ago
parent
commit
f85867bb66
  1. 4
      packages/fineui/src/core/5.inject.js
  2. 96
      packages/fineui/src/core/platform/web/jquery/jquery.polyfill.js
  3. 2
      packages/fineui/webpack/attachments.js

4
packages/fineui/src/core/5.inject.js

@ -601,3 +601,7 @@ export function getResource(type, config) {
}
throw new Error("unknown type: [" + type + "] undefined");
}
export function getClass(xtype) {
return kv[xtype] || serviceInjection[xtype];
}

96
packages/fineui/src/core/platform/web/jquery/jquery.polyfill.js

@ -1,96 +0,0 @@
/**
* 用于 jquery worker 环境或者 V8 引擎的 polyfill
*/
// import { _global } from "@/core/0.foundation";
const _global = globalThis;
const document = {};
const fakeElement = Object.create(document);
Object.assign(document, {
parentNode: null,
nodeType: 9,
head: fakeElement,
body: fakeElement,
ownerDocument: document,
documentElement: document,
toString() {
return "FakeDocument";
},
appendChild(child) {
return child;
},
implementation: {
createHTMLDocument() {
return {
body: {
childNodes: [],
},
};
},
createDocumentFragment() {
return this;
},
},
getElementById() {
return fakeElement;
},
createElement() {
return fakeElement;
},
createDocumentFragment() {
return this;
},
cloneNode() {
return this;
},
getElementsByTagName() {
return [fakeElement];
},
getElementsByClassName() {
return [fakeElement];
},
setAttribute() {
return null;
},
getAttribute() {
return null;
},
removeChild() {
return null;
},
addEventListener() {
return null;
},
removeEventListener() {
return null;
},
});
Object.assign(fakeElement, {
nodeType: 1,
style: {},
ownerDocument: document,
parentNod: fakeElement,
firstChild: fakeElement,
lastChild: fakeElement,
toString() {
return "FakeElement";
},
});
function polyfillProps(key, obj) {
_global[key] = _global[key] || obj;
if (typeof obj === "object") {
try {
Object.assign(_global[key], obj);
} catch(err) {
// _global[key] 可能只有 get 方法
}
}
}
_global.window = _global;
polyfillProps("XMLHttpRequest", function () {});
polyfillProps("document", document);

2
packages/fineui/webpack/attachments.js

@ -1,6 +1,5 @@
const { sync, uniq } = require("./utils");
const jqueryPolyfill = "./src/core/platform/web/jquery/jquery.polyfill.js";
const configJS = "./src/core/platform/web/config.js";
const runtimePolyfill = ["core-js/stable"];
@ -34,7 +33,6 @@ const fineui = [].concat(
);
const fineuiForWorker = [].concat(
jqueryPolyfill,
basicAttachmentMap.js_bundle,
basicAttachmentMap.ui,
basicAttachmentMap.ts

Loading…
Cancel
Save