Skip to content

Commit e4a8408

Browse files
committed
add eslint and console api
1 parent 2bee28c commit e4a8408

File tree

8 files changed

+72
-6
lines changed

8 files changed

+72
-6
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
!.eslintrc.js

.eslintrc.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
'use strict';
2+
3+
module.exports = {
4+
extends: 'airbnb-base',
5+
parser: 'babel-eslint',
6+
parserOptions: {
7+
ecmaVersion: 2019,
8+
},
9+
env: {
10+
browser: true,
11+
},
12+
overrides: [
13+
{
14+
files: ['*.js', '.*.js'],
15+
parserOptions: { sourceType: 'script' },
16+
},
17+
],
18+
globals: {
19+
BigInt: false,
20+
Atomics: false,
21+
SharedArrayBuffer: false,
22+
WeakRef: false,
23+
},
24+
rules: {
25+
'quote-props': ['error', 'consistent'],
26+
'strict': ['error', 'global'],
27+
'prefer-destructuring': 'off',
28+
'no-multiple-empty-lines': ['error', { maxBOF: 0, max: 2 }],
29+
'arrow-parens': ['error', 'always'],
30+
'lines-between-class-members': 'off',
31+
'max-classes-per-file': 'off',
32+
'no-restricted-syntax': 'off',
33+
'import/no-cycle': 'off',
34+
'import/extensions': 'off',
35+
'import/prefer-default-export': 'off',
36+
'import/no-mutable-exports': 'off',
37+
'global-require': 'off',
38+
},
39+
};

api/.eslintrc.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
'use strict';
2+
3+
module.exports = {
4+
extends: '../.eslintrc.js',
5+
env: {
6+
node: true,
7+
},
8+
};

src/editor.mjs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* eslint-env browser */
21
/* global CodeMirror */
32

43
import { getState, setState } from './state.mjs';

src/index.mjs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
/* eslint-env browser */
2-
31
import './state.mjs';
42
import './editor.mjs';
53

src/runner.mjs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
/* eslint-env browser */
2-
31
import { getState, updateState } from './state.mjs';
42

53
const features = document.querySelector('#features');

src/state.mjs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* eslint-env browser */
21
/* global LZString */
32

43
const query = new URLSearchParams(document.location.hash.slice(1));

src/worker.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const {
1414
Value,
1515
Throw,
1616
inspect,
17+
Object: APIObject,
1718
FEATURES,
1819
} = self.engine262;
1920

@@ -46,6 +47,29 @@ addEventListener('message', ({ data }) => {
4647
}, [], realm);
4748
Abstract.CreateDataProperty(realm.global, new Value(realm, 'print'), print);
4849

50+
const console = new APIObject(realm);
51+
Abstract.CreateDataProperty(realm.global, new Value(realm, 'console'), console);
52+
53+
[
54+
'log',
55+
'warn',
56+
'debug',
57+
'error',
58+
'clear',
59+
].forEach((method) => {
60+
const fn = new Value(realm, (args) => {
61+
postMessage({
62+
type: 'console',
63+
value: {
64+
method,
65+
values: args.map((a) => inspect(a)),
66+
},
67+
});
68+
return Value.undefined;
69+
});
70+
Abstract.CreateDataProperty(console, new Value(realm, method), fn);
71+
});
72+
4973
postMessage({
5074
type: 'console',
5175
value: {

0 commit comments

Comments
 (0)