okojo-test262
GitHub用于 Okojo 运行时/编译器开发及 Test262 合规性修复。涵盖实现决策、本地测试循环运行、字节码与 V8 行为对比调试,以及标准对齐的 Bug 修复工作流。
Trigger Scenarios
Install
npx skills add akeit0/okojo --skill okojo-test262 -g -y
SKILL.md
Frontmatter
{
"name": "okojo-test262",
"description": "Work on Okojo inside okojo. Use this for Okojo runtime\/compiler\/Test262 work, including deciding what to implement versus intentionally skip, running the local Okojo test loop, and continuing Test262-driven compliance fixes."
}
Okojo Test262
Use this skill for work under:
src/Okojotests/Okojo.Testsdocs/tools/OkojoBytecodeTooltools/V8BytecodeTooltools/Test262Runner
Primary priorities
- correctness
- observability/tooling
- measured optimization
Prefer:
- V8 as the reference for language/compiler/VM behavior
- Node as the reference for built-in/runtime API behavior
Core policy
Fix standards-aligned behavior.
Do not prioritize deprecated/legacy behavior unless explicitly re-approved. Treat these as intentionally unsupported by default:
- direct-eval-specific semantics
with- legacy
__proto__ - deprecated legacy accessor APIs
Function.prototype.arguments/Function.prototype.callerarguments.callee
For these, prefer narrow intended Test262 skips with a clear reason over regressing core paths.
Required workflow for non-trivial debugging
- inspect emitted Okojo bytecode
- inspect VM/runtime behavior
- inspect V8 / Node behavior
- record short findings: copy vs intentional difference
Tools:
tools/OkojoBytecodeTooltools/V8BytecodeToolnode -e ...sandbox/OkojoRepl
Fast local loop
dotnet build tests/Okojo.Tests/Okojo.Tests.csproj -c Release /p:UseSharedCompilation=false
dotnet test tests/Okojo.Tests/Okojo.Tests.csproj -c Release --no-build --filter <Name>
When the runner is involved:
dotnet build tools/Test262Runner/Test262Runner.csproj -c Release /p:UseSharedCompilation=false
Test262 runner
Show help:
dotnet run --project tools/Test262Runner/Test262Runner.csproj -c Release -- --help
Common continuation pattern:
dotnet run --project tools/Test262Runner/Test262Runner.csproj -c Release -- --max-tests 30 --full-path --skip-passed
Array.prototype sweep example:
dotnet run --project tools/Test262Runner/Test262Runner.csproj -c Release -- --max-tests 30 --category built-ins --filter Array/prototype --full-path --skip-passed
Useful runner notes:
--skip-passeduses the local passed cache- rebuild the runner after runtime/compiler changes before trusting exact reruns
SkipList.cscontains intentional exclusions
Skip list location:
tools/Test262Runner/SkipList.cs
Implementation guidance
- Keep hot paths simple.
- Push uncommon semantics into explicit slow paths.
- Keep frame layout and opcode operand conventions stable.
- Keep numeric index keys out of shape transitions.
Editing guidance
- Prefer minimal, local fixes.
- Add a focused regression test for each fix.
- Do not revert unrelated user changes.
- Do not widen policy support accidentally just to satisfy a single Test262 file.
Commit discipline
git status --short
git add src/Okojo/... tests/Okojo.Tests/... tools/... docs/...
git commit -m "<type>(<scope>): <subject>"
Do not commit unrelated IDE files, experiments, or non-Okojo changes.
Focused references
Use the matching doc note when a feature has an active work note in docs/.
Version History
- 0.1.2-preview1 Current 2026-07-24 22:32


