diff --git a/test_direct_clone.nyash b/test_direct_clone.nyash new file mode 100644 index 00000000..8f05bdea --- /dev/null +++ b/test_direct_clone.nyash @@ -0,0 +1,26 @@ +# Isolate the Arc sharing issue +static box Main { + init { console } + + main() { + me.console = new ConsoleBox() + me.console.log("🔬 Direct Clone Test") + + # Create socket and bind + local socket1 = new SocketBox() + local bindResult = socket1.bind("127.0.0.1", 19777) + me.console.log("✅ Bind result: " + bindResult.toString()) + + # Clone the socket manually + local socket2 = socket1 + + # Check if clone has the same state + local isServer1 = socket1.isServer() + local isServer2 = socket2.isServer() + + me.console.log("🔍 socket1.isServer(): " + isServer1.toString()) + me.console.log("🔍 socket2.isServer(): " + isServer2.toString()) + + return "DIRECT_CLONE_TEST" + } +} \ No newline at end of file diff --git a/test_field_arc_sharing.nyash b/test_field_arc_sharing.nyash new file mode 100644 index 00000000..6f527c9c --- /dev/null +++ b/test_field_arc_sharing.nyash @@ -0,0 +1,29 @@ +# Test Arc sharing for field access +static box Main { + init { console, server } + + main() { + me.console = new ConsoleBox() + me.console.log("🔬 Field Access Arc Sharing Test") + + # Store socket in field + me.server = new SocketBox() + me.console.log("✅ Created me.server") + + # Test 1: Multiple field accesses + local str1 = me.server.toString() + me.console.log("📊 First field access: " + str1) + + local str2 = me.server.toString() + me.console.log("📊 Second field access: " + str2) + + # Test 2: State change via field access + local bindResult = me.server.bind("127.0.0.1", 19888) + me.console.log("✅ Bind via field access: " + bindResult.toString()) + + local isServer = me.server.isServer() + me.console.log("🔍 isServer via field access: " + isServer.toString()) + + return "FIELD_ACCESS_ARC_TEST" + } +} \ No newline at end of file