← Documentation

⚠️ Real Constraints

Important (June 2026): This page documents only true architectural constraints. Previous versions listed features that have since been fully implemented—see architecture for what Symmetra actually supports.

Contents

✅ Fully Supported: Async/await with CUDA streams · Complete regex engine (170/170 JS/TS features) · Array.push/pop/shift · eval() with runtime JIT · Promise.all/race/any · Dynamic memory · Full JavaScript language

---

🌍 No Unicode Support

Impact: Low Frequency: Rare

The Constraint

String handling is ASCII/UTF-8 bytes only. Standard ASCII case methods work, but no Unicode normalization or locale-aware operations.

// Works:
"alice".toUpperCase();  // ✓ "ALICE"

// Doesn't work:
"👍".toUpperCase();  // ✗ Returns "👍"
"naïve".normalize('NFKC');  // ✗ No-op

Why?

Full Unicode (ICU library) is 20+ MB. GPU kernels use simple byte-level ASCII.

✓ Solution

Pre-process on CPU (1–5µs):

const normalized = str.normalize('NFKC').toLowerCase();
const result = gpu.process({ input: normalized });
---

📍 Simplified Stack Traces

Impact: Low Frequency: Debugging only

The Constraint

Error.stack is unavailable in GPU kernels. You get message + location, not the full call chain.

Why?

Parallel execution (256+ threads) makes full unwinding expensive.

✓ Solution

Log at CPU/GPU boundaries:

console.log('→ GPU:', { input });
try {
  result = gpu.compute(input);
} catch (err) {
  console.error('GPU error:', { error: err.message, input });
}
---

🪞 Proxy/Reflect Limitations

Impact: Low Frequency: Very rare

The Constraint

Proxy and Reflect parse but don't intercept property access transparently.

Why?

Transparent interception requires overhead on every property access. GPU code prioritizes performance.

✓ Solution

Validate upfront:

if (typeof data.id !== 'number') throw new Error('Invalid');
const result = gpu.process(data);
---

📋 Summary

Constraint Impact Workaround
Unicode Low Pre-normalize on CPU
Stack Traces Low Log at boundaries
Proxy/Reflect Low Validate upfront
---

📚 What's Actually Supported

---

Last updated: June 5, 2026 · Architecture docs