(builder *ClassBuilder)
| 326 | } |
| 327 | |
| 328 | func cloneClassBuilder(builder *ClassBuilder) *ClassBuilder { |
| 329 | if builder == nil { |
| 330 | return nil |
| 331 | } |
| 332 | |
| 333 | clonedMethods := make([]MethodEntry, len(builder.methods)) |
| 334 | copy(clonedMethods, builder.methods) |
| 335 | |
| 336 | clonedAccessors := make([]AccessorEntry, len(builder.accessors)) |
| 337 | copy(clonedAccessors, builder.accessors) |
| 338 | |
| 339 | clonedProperties := make([]PropertyEntry, len(builder.properties)) |
| 340 | copy(clonedProperties, builder.properties) |
| 341 | |
| 342 | return &ClassBuilder{ |
| 343 | name: builder.name, |
| 344 | constructor: builder.constructor, |
| 345 | methods: clonedMethods, |
| 346 | accessors: clonedAccessors, |
| 347 | properties: clonedProperties, |
| 348 | } |
| 349 | } |
| 350 | |
| 351 | // createClass implements the core class creation logic using C layer optimization |
| 352 | // MODIFIED FOR SCHEME C: Now stores entire ClassBuilder and separates static/instance properties |
no outgoing calls