Skip to content

Commit 96c11fa

Browse files
committed
work with new api
1 parent 00afdfc commit 96c11fa

File tree

1 file changed

+17
-21
lines changed

1 file changed

+17
-21
lines changed

src/worker.js

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,22 @@ importScripts('/engine262/engine262.js');
88
const {
99
Agent,
1010
Value,
11+
JSStringValue,
1112
ManagedRealm,
1213

13-
Type,
1414
CreateDataProperty,
1515
OrdinaryObjectCreate,
1616
CreateBuiltinFunction,
1717

18+
evalQ,
19+
skipDebugger,
20+
ThrowCompletion,
1821
AbruptCompletion,
19-
Throw,
2022

2123
setSurroundingAgent,
2224
inspect,
2325
FEATURES,
24-
} = self['@engine262/engine262'];
26+
} = /** @type {import('../../engine262/declaration/index.d.mts')} */ (self['@engine262/engine262'])
2527

2628
postMessage({ type: 'initialize', value: { FEATURES } });
2729

@@ -66,11 +68,11 @@ addEventListener('message', ({ data }) => {
6668
});
6769
return Value.undefined;
6870
}, 1, Value('print'), []);
69-
CreateDataProperty(realm.GlobalObject, Value('print'), print);
71+
skipDebugger(CreateDataProperty(realm.GlobalObject, Value('print'), print))
7072

7173
{
7274
const console = OrdinaryObjectCreate(agent.intrinsic('%Object.prototype%'));
73-
CreateDataProperty(realm.GlobalObject, Value('console'), console);
75+
skipDebugger(CreateDataProperty(realm.GlobalObject, Value('console'), console));
7476

7577
[
7678
'log',
@@ -85,15 +87,15 @@ addEventListener('message', ({ data }) => {
8587
value: {
8688
method,
8789
values: args.map((a, i) => {
88-
if (i === 0 && Type(a) === 'String') {
90+
if (i === 0 && a instanceof JSStringValue) {
8991
return a.stringValue();
9092
}
9193
return inspect(a);
9294
}),
9395
},
9496
});
9597
return Value.undefined;
96-
}, 1, Value(''), null);
98+
}, 1, Value(''), []);
9799
CreateDataProperty(console, Value(method), fn);
98100
});
99101
}
@@ -110,21 +112,15 @@ addEventListener('message', ({ data }) => {
110112
if (state.get('mode') === 'script') {
111113
result = realm.evaluateScript(code, { specifier: 'code.js' });
112114
} else {
113-
result = realm.createSourceTextModule('code.mjs', code);
114-
if (!(result instanceof AbruptCompletion)) {
115-
const module = result;
116-
realm.moduleEntry = module;
117-
result = module.LoadRequestedModules();
118-
if (!(result instanceof AbruptCompletion)) {
119-
result = module.Link();
120-
if (!(result instanceof AbruptCompletion)) {
121-
result = module.Evaluate();
122-
if (result.PromiseState === 'rejected') {
123-
result = Throw(result.PromiseResult);
124-
}
115+
result = evalQ((Q) => {
116+
const module = Q(realm.createSourceTextModule('code.mjs', code))
117+
Q(module.LoadRequestedModules())
118+
Q(module.Link())
119+
const promise = Q(skipDebugger(module.Evaluate()))
120+
if (promise.PromiseState === 'rejected') {
121+
return ThrowCompletion(promise.PromiseResult || Value.undefined)
125122
}
126-
}
127-
}
123+
})
128124
}
129125
if (result instanceof AbruptCompletion) {
130126
postMessage({

0 commit comments

Comments
 (0)