aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode/objects.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bytecode/objects.c')
-rw-r--r--src/bytecode/objects.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/bytecode/objects.c b/src/bytecode/objects.c
index e446fb0..3b4a2eb 100644
--- a/src/bytecode/objects.c
+++ b/src/bytecode/objects.c
@@ -58,7 +58,8 @@ object_display(Object obj) {
58 // printf(")"); 58 // printf(")");
59 } break; 59 } break;
60 case OBJ_TYPE_LAMBDA: { 60 case OBJ_TYPE_LAMBDA: {
61 printf("#{procedure}"); 61 printf("#{procedure:%.*s}",
62 (int)array_size(obj.chunk->name), obj.chunk->name);
62 } break; 63 } break;
63 case OBJ_TYPE_ERR: { 64 case OBJ_TYPE_ERR: {
64 printf("#{error}"); 65 printf("#{error}");
@@ -102,6 +103,9 @@ object_equal(Object a, Object b) {
102 } 103 }
103 } 104 }
104 } break; 105 } break;
106 case OBJ_TYPE_LAMBDA: {
107 return a.chunk == b.chunk;
108 } break;
105 default: { 109 default: {
106 return false; 110 return false;
107 } break; 111 } break;
@@ -121,14 +125,14 @@ object_copy(Object src) {
121 return copy; 125 return copy;
122 } break; 126 } break;
123 case OBJ_TYPE_LAMBDA: { 127 case OBJ_TYPE_LAMBDA: {
124 Object copy = src; 128 // Object copy = src;
125 StringView name = (StringView){ 129 // StringView name = (StringView){
126 .start = src.chunk->name, 130 // .start = src.chunk->name,
127 .n = array_size(src.chunk->name), 131 // .n = array_size(src.chunk->name),
128 }; 132 // };
129 // TODO: copy full chunk? 133 // // TODO: copy full chunk?
130 // copy.chunk = chunk_init(name); 134 // // copy.chunk = chunk_init(name);
131 return copy; 135 // return copy;
132 } break; 136 } break;
133 default: { break; } break; 137 default: { break; } break;
134 } 138 }