internal void Emit(CodeGenerator/*!*/ codeGenerator) { Statistics.AST.AddNode("Class.ConstantDecl"); codeGenerator.InitializeClassConstant(constant); if (constant.IsExported) { string name = constant.FullName; // avoid duplicate export property names while (true) { DPropertyDesc prop_desc = constant.DeclaringPhpType.TypeDesc.GetProperty(new VariableName(name)); if (prop_desc != null && prop_desc.PhpField.IsExported) { name = name + "_const"; } else break; } PropertyBuilder exported_property = ClrStubBuilder.DefineFieldExport(name, constant); codeGenerator.EmitConstantExportStub(constant, exported_property); } }