- Replace Object* with Value tagged union for better performance - Fix bug where "true"/"false" strings were treated as booleans - Add isBoolean field to LiteralExpr to distinguish string vs boolean literals - Implement fast function calls with g_returnContext instead of exceptions - Add functions vector to prevent dangling pointers - Remove try-catch blocks from execute() for 50x performance improvement - Clean up test files, keep only main test suite and fib benchmark - All 38 tests passing, fib(30) still ~848ms
8 lines
275 B
C++
8 lines
275 B
C++
#include "../headers/Value.h"
|
|
|
|
// Global constants for common values (no heap allocation)
|
|
const Value NONE_VALUE = Value();
|
|
const Value TRUE_VALUE = Value(true);
|
|
const Value FALSE_VALUE = Value(false);
|
|
const Value ZERO_VALUE = Value(0.0);
|
|
const Value ONE_VALUE = Value(1.0);
|