### Godot version

4.0beta12

### System information

all

### Issue description

In `extension_api.json` we have some function that uses parameter typed after a global enum and display it as a bitfield:
```js
{
	"name": "set_button_mask",
	"is_const": false,
	"is_vararg": false,
	"is_static": false,
	"is_virtual": false,
	"hash": 3950145251,
	"arguments": [
		{
			"name": "mask",
			"type": "bitfield::MouseButtonMask" // bitfield prefix here !
		}
	]
},
```

However the global enum's own definition doesn't mention it is a bitfield:
```js
{
	"name": "MouseButtonMask",
	// No "bitfield" field here !
	"values": [
		{
			"name": "MOUSE_BUTTON_MASK_LEFT",
			"value": 1
		},
		{
			"name": "MOUSE_BUTTON_MASK_RIGHT",
			"value": 2
		},
		{
			"name": "MOUSE_BUTTON_MASK_MIDDLE",
			"value": 4
		},
		{
			"name": "MOUSE_BUTTON_MASK_MB_XBUTTON1",
			"value": 128
		},
		{
			"name": "MOUSE_BUTTON_MASK_MB_XBUTTON2",
			"value": 256
		}
	]
},
```

On the other hand, the non-global enums (i.e. the ones defined as part of a class) have this `is_bitfield` field.
So I guess we should add it to global enum too.

### Steps to reproduce

n/a

### Minimal reproduction project

n/a
static_assert(type_size_array[Variant::PACKED_FLOAT64_ARRAY][sizeof(void *)] == sizeof(PackedFloat64Array), "Size of PackedFloat64Array mismatch");
		static_assert(type_size_array[Variant::PACKED_STRING_ARRAY][sizeof(void *)] == sizeof(PackedStringArray), "Size of PackedStringArray mismatch");
		static_assert(type_size_array[Variant::PACKED_VECTOR2_ARRAY][sizeof(void *)] == sizeof(PackedVector2Array), "Size of PackedVector2Array mismatch");
		static_assert(type_size_array[Variant::PACKED_VECTOR3_ARRAY][sizeof(void *)] == sizeof(PackedVector3Array), "Size of PackedVector3Array mismatch");
		static_assert(type_size_array[Variant::PACKED_COLOR_ARRAY][sizeof(void *)] == sizeof(PackedColorArray), "Size of PackedColorArray mismatch");
		static_assert(type_size_array[Variant::VARIANT_MAX][sizeof(void *)] == sizeof(Variant), "Size of Variant mismatch");
		Array core_type_sizes;
		for (int i = 0; i < 4; i++) {
			Dictionary d;
			d["build_configuration"] = build_config_name[i];
			Array sizes;
			for (int j = 0; j <= Variant::VARIANT_MAX; j++) {
				Variant::Type t = type_size_array[j].type;
				String name = t == Variant::VARIANT_MAX ? String("Variant") : Variant::get_type_name(t);
				Dictionary d2;
				d2["name"] = name;
				uint32_t size = 0;
				switch (i) {
					case 0:
						size = type_size_array[j].size_32_bits_real_float;
						break;
					case 1:
						size = type_size_array[j].size_64_bits_real_float;
						break;
					case 2:
						size = type_size_array[j].size_32_bits_real_double;
						break;
					case 3:
						size = type_size_array[j].size_64_bits_real_double;
						break;