compat es5
This commit is contained in:
2
doric-js/lib/index.runtime.es5.d.ts
vendored
2
doric-js/lib/index.runtime.es5.d.ts
vendored
@@ -1,2 +1,2 @@
|
||||
export * from 'core-js';
|
||||
export * from './src/runtime/sandbox';
|
||||
export * from 'core-js';
|
||||
|
@@ -13,5 +13,45 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
export * from 'core-js';
|
||||
class ProxyPolyfill {
|
||||
constructor(target, handler) {
|
||||
this.__target__ = target;
|
||||
this.__handler__ = handler;
|
||||
this.defineProps();
|
||||
return target;
|
||||
}
|
||||
defineProps() {
|
||||
const keys = Object.keys(this.__target__);
|
||||
keys.forEach(property => {
|
||||
if (Object.getOwnPropertyDescriptor(this.__target__, property) !== undefined) {
|
||||
return;
|
||||
}
|
||||
Object.defineProperty(this, property, {
|
||||
get: () => {
|
||||
this.defineProps();
|
||||
if (this.__handler__.get) {
|
||||
return this.__handler__.get(this.__target__, property, this);
|
||||
}
|
||||
else {
|
||||
return this.__target__[property];
|
||||
}
|
||||
},
|
||||
set: (value) => {
|
||||
this.defineProps();
|
||||
if (this.__handler__.set) {
|
||||
this.__handler__.set(this.__target__, property, value, property);
|
||||
}
|
||||
else {
|
||||
this.__target__[property] = value;
|
||||
}
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
const global = Function('return this')();
|
||||
global.Proxy = ProxyPolyfill;
|
||||
export * from './src/runtime/sandbox';
|
||||
export * from 'core-js';
|
||||
|
2
doric-js/lib/src/polyfill.d.ts
vendored
Normal file
2
doric-js/lib/src/polyfill.d.ts
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
declare module 'core-js';
|
||||
declare module 'proxy-polyfill/src/proxy';
|
1
doric-js/lib/src/polyfill.js
Normal file
1
doric-js/lib/src/polyfill.js
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";
|
Reference in New Issue
Block a user