                 @ejs = {
                         personality:           module.getOrInsertExternalFunction "__ejs_personality_v0",           int32Type, [int32Type, int32Type, int64Type, int8PointerType, int8PointerType]
                         
-                        object_new:            module.getOrInsertExternalFunction "_ejs_object_new",                EjsValueType, [EjsValueType]
+                        object_create:         module.getOrInsertExternalFunction "_ejs_object_create",             EjsValueType, [EjsValueType]
                         arguments_new:         module.getOrInsertExternalFunction "_ejs_arguments_new",             EjsValueType, [int32Type, EjsValueType.pointerTo()]
                         array_new:             module.getOrInsertExternalFunction "_ejs_array_new",                 EjsValueType, [int32Type]
                         number_new:            only_reads_memory module.getOrInsertExternalFunction "_ejs_number_new",                EjsValueType, [llvm.Type.getDoubleTy()]

                                fake_literal = {
                                        type: syntax.Literal
                                        value: n.argument.property.name
                                        raw: "\"#{n.argument.property.name}\""
                                }
                                return @createCall callee, [(@visitOrNull n.argument.object), (@visit fake_literal)], "result"
                        else

                rv

        visitObjectExpression: (n) ->
                obj = @createCall @ejs.object_create, [@loadNullEjsValue()], "objtmp"
                for property in n.properties
                        val = @visit property.value
                        key = property.key
