Skip to content

Commit c4c7d34

Browse files
stonechoeGooncod01c2jhnaldo
authored
Release V1.0 (#2)
* refactor: refactor with react * refactor: refactor file directories * feat: support indexed db * chore: add utils and types * feat: migrate from vanilla js * feat: add sdo extraction and loading state * chore: update gitignore * feat: support test262 * feat: add tab for test262 * feat: add span for inline branches * feat: add download buttons for test262 * feat: support default program and remove bugs * feat: add default iteration * fix: fixed decode logic error * feat: support correct sdo and set of node id * feat: update program view ui and add disclosure * feat: add click and not found explanation * feat: add callstack clicks from spec * feat: support callstack program view * feat: add styles and blocks recursive callPath adding * feat: support automatically removing callstack * feat: remove params from sdo and change ui * feat: add resizable box and test262 table ui * feat: add code editor * feat: add virtual visualizer * feat: add file download * feat: add resource * feat: change run on web debugger button position * feat: trim program and add iter for abrupt completion * feat: add 500px option for width * chore: add slight style change * chore: change to run on double debugger * move resources.zip to main repo * refactor: refactor spec transformation * refactor: add sdo spec transformation * refactor: add api using github raw contents * refactor: refactor program viewer * refactor: refactor file structures * refactor: refactor callstack logic * refactor: add basic json as extension resources * refactor: handle sdo step clicks * refactor: add default sdo for single prod algorithm and call link click * refactor: remove unused codes * refactor: add setting popup * refactor: add callpath program selection * refactor: enable run on debugger * refactor: add recursive call click and default progam * refactor: fix step selection errors and hover styles on step * refactor: add test262 viewer * refactor: fix spec transformation error * refactor: enhance speed by moving local data to state * refactor: add cp sensitivity to test262 and change setting box design * refactor: add simple changes * refactor: update manifest.json * refactor: support visualizer in all spec url and handle other slight problems * fix: fix callpath sensitive program selection * fix: fix cp matching and resource file name * update README and manifest * feat: add released debugger url and support official url of ECMAScript * fix: remove resource url --------- Co-authored-by: 송경호 <s07019@naver.com> Co-authored-by: d01c2 <rickykhj@korea.ac.kr> Co-authored-by: Jihyeok Park <jihyeok_park@korea.ac.kr>
1 parent aaae0f6 commit c4c7d34

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+41827
-0
lines changed

.env

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
VITE_TEST262_RAW_URL = "https://raw.githubusercontent.com/tc39/test262/3a7a72aef5009eb22117231d40f9a5a66a9a595a/test"
2+
VITE_TEST262_URL = "https://github.com/tc39/test262/blob/3a7a72aef5009eb22117231d40f9a5a66a9a595a/test"
3+
VITE_DOUBLE_DEBUGGER_URL = "https://es-meta.github.io/playground"
4+
VITE_RESOURCE_URL = "https://raw.githubusercontent.com/ku-plrg/ecma-visualizer-resources/refs/heads/main"
5+
VITE_ESMETA_URL = "https://github.com/es-meta/esmeta"
6+
VITE_ECMAVISUALIZER_URL = "https://github.com/ku-plrg/ecma-visualizer"
7+
VITE_ENABLED_SPEC_URL = "https://tc39.es/ecma262/2024|https://262.ecma-international.org/15.0"
8+
VITE_DEBUG = "OFF"

.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
14+
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
19+
.DS_Store
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?

.prettierrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"plugins": ["prettier-plugin-tailwindcss"],
3+
"tailwindFunctions": ["clsx"]
4+
}

README.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# ECMAScript Visualizer
2+
3+
**ECMAScript Visualizer** is a Chrome extension that provides example programs for each part of the ECMAScript/JavaScript specification [(ECMA-262)](https://tc39.es/ecma262). The example programs are served from [`ecma-visualizer-resources`](https://github.com/ku-plrg/ecma-visualizer-resources).
4+
5+
## Installation Guide
6+
7+
Download the repository and enter the directory:
8+
9+
```
10+
git clone https://github.com/ku-plrg/ecma-visualizer
11+
cd ecma-visualizer
12+
```
13+
14+
Then, run the following command to build the visualizer:
15+
16+
```
17+
npm install && npm run build
18+
```
19+
20+
And follow the instructions below to install the visualizer extension:
21+
22+
1. Open the Chrome browser and enter `chrome://extensions/`.
23+
2. Turn on the Developer mode on the top right corner.
24+
3. Click the Load unpacked button and select the `ecma-visualizer/dist` directory.
25+
26+
The chrome extension currently works on ES2024 web page: https://tc39.es/ecma262/2024/.
27+
28+
## Chrome Extension Release Guide
29+
30+
1. Go to the [Chrome Developer Dashboard](https://chrome.google.com/webstore/devconsole)
31+
2. Sign in to the developer account
32+
3. Click the **Add new item** button
33+
4. Click **Choose file** > your zip file > **Upload**

components.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"$schema": "https://ui.shadcn.com/schema.json",
3+
"style": "new-york",
4+
"rsc": false,
5+
"tsx": true,
6+
"tailwind": {
7+
"config": "tailwind.config.js",
8+
"css": "src/index.css",
9+
"baseColor": "neutral",
10+
"cssVariables": false,
11+
"prefix": ""
12+
},
13+
"aliases": {
14+
"components": "@/components",
15+
"utils": "@/lib/utils",
16+
"ui": "@/components/ui",
17+
"lib": "@/lib",
18+
"hooks": "@/hooks"
19+
},
20+
"iconLibrary": "lucide"
21+
}

eslint.config.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import js from "@eslint/js";
2+
import globals from "globals";
3+
import reactHooks from "eslint-plugin-react-hooks";
4+
import reactRefresh from "eslint-plugin-react-refresh";
5+
import tseslint from "typescript-eslint";
6+
7+
export default tseslint.config(
8+
{ ignores: ["dist"] },
9+
{
10+
extends: [js.configs.recommended, ...tseslint.configs.recommended],
11+
files: ["**/*.{ts,tsx}"],
12+
languageOptions: {
13+
ecmaVersion: 2020,
14+
globals: globals.browser,
15+
},
16+
plugins: {
17+
"react-hooks": reactHooks,
18+
"react-refresh": reactRefresh,
19+
},
20+
rules: {
21+
"no-unused-vars": "warn",
22+
...reactHooks.configs.recommended.rules,
23+
"react-refresh/only-export-components": [
24+
"warn",
25+
{ allowConstantExport: true },
26+
],
27+
},
28+
},
29+
);

0 commit comments

Comments
 (0)