To Proto or not to Proto?

Fair.

(
b = { 1000000.do(nil) }.bench(false);

f = Point(0, 0);
g = (myValue: 0);
h = Proto { ~myValue = 0 };

"number: %, event proto: %, hjh Proto: %\n"
.postf(
	{ 1000000.do { f.x } }.bench(false) - b,
	{ 1000000.do { g.myValue } }.bench(false) - b,
	{ 1000000.do { h.myValue } }.bench(false) - b,
);
)

number: 0.015614831000001, event proto: 0.155535334, hjh Proto: 0.135055207

(
b = { 1000000.do(nil) }.bench(false);

f = { 0 };
g = (myValue: { 0 });
h = Proto { ~myValue = { 0 } };

"number: %, event proto: %, hjh Proto: %\n"
.postf(
	{ 1000000.do { f.value } }.bench(false) - b,
	{ 1000000.do { g.myValue } }.bench(false) - b,
	{ 1000000.do { h.myValue } }.bench(false) - b,
);
)

number: 0.029886418999993, event proto: 0.10214978800001, hjh Proto: 0.858221962

Still an estimate, but a better estimate.

hjh