[Javascript] Fix syntax error for signed enum (#5503)

* wrap quotes to enum name map to prevent syntax errorn when enum value is negative

* Add a test that covers signed enum case
This commit is contained in:
Jaemin Park
2019-09-06 02:22:04 +09:00
committed by Wouter van Oortmerssen
parent d0e3870c0f
commit 4b870aca98
29 changed files with 668 additions and 71 deletions

View File

@@ -674,22 +674,31 @@ class Monster extends Table
return $this->__vector_as_bytes(98);
}
/**
* @return sbyte
*/
public function getSignedEnum()
{
$o = $this->__offset(100);
return $o != 0 ? $this->bb->getSbyte($o + $this->bb_pos) : \MyGame\Example\Race::None;
}
/**
* @param FlatBufferBuilder $builder
* @return void
*/
public static function startMonster(FlatBufferBuilder $builder)
{
$builder->StartObject(48);
$builder->StartObject(49);
}
/**
* @param FlatBufferBuilder $builder
* @return Monster
*/
public static function createMonster(FlatBufferBuilder $builder, $pos, $mana, $hp, $name, $inventory, $color, $test_type, $test, $test4, $testarrayofstring, $testarrayoftables, $enemy, $testnestedflatbuffer, $testempty, $testbool, $testhashs32_fnv1, $testhashu32_fnv1, $testhashs64_fnv1, $testhashu64_fnv1, $testhashs32_fnv1a, $testhashu32_fnv1a, $testhashs64_fnv1a, $testhashu64_fnv1a, $testarrayofbools, $testf, $testf2, $testf3, $testarrayofstring2, $testarrayofsortedstruct, $flex, $test5, $vector_of_longs, $vector_of_doubles, $parent_namespace_test, $vector_of_referrables, $single_weak_reference, $vector_of_weak_references, $vector_of_strong_referrables, $co_owning_reference, $vector_of_co_owning_references, $non_owning_reference, $vector_of_non_owning_references, $any_unique_type, $any_unique, $any_ambiguous_type, $any_ambiguous, $vector_of_enums)
public static function createMonster(FlatBufferBuilder $builder, $pos, $mana, $hp, $name, $inventory, $color, $test_type, $test, $test4, $testarrayofstring, $testarrayoftables, $enemy, $testnestedflatbuffer, $testempty, $testbool, $testhashs32_fnv1, $testhashu32_fnv1, $testhashs64_fnv1, $testhashu64_fnv1, $testhashs32_fnv1a, $testhashu32_fnv1a, $testhashs64_fnv1a, $testhashu64_fnv1a, $testarrayofbools, $testf, $testf2, $testf3, $testarrayofstring2, $testarrayofsortedstruct, $flex, $test5, $vector_of_longs, $vector_of_doubles, $parent_namespace_test, $vector_of_referrables, $single_weak_reference, $vector_of_weak_references, $vector_of_strong_referrables, $co_owning_reference, $vector_of_co_owning_references, $non_owning_reference, $vector_of_non_owning_references, $any_unique_type, $any_unique, $any_ambiguous_type, $any_ambiguous, $vector_of_enums, $signed_enum)
{
$builder->startObject(48);
$builder->startObject(49);
self::addPos($builder, $pos);
self::addMana($builder, $mana);
self::addHp($builder, $hp);
@@ -737,6 +746,7 @@ class Monster extends Table
self::addAnyAmbiguousType($builder, $any_ambiguous_type);
self::addAnyAmbiguous($builder, $any_ambiguous);
self::addVectorOfEnums($builder, $vector_of_enums);
self::addSignedEnum($builder, $signed_enum);
$o = $builder->endObject();
$builder->required($o, 10); // name
return $o;
@@ -1629,6 +1639,16 @@ class Monster extends Table
$builder->startVector(1, $numElems, 1);
}
/**
* @param FlatBufferBuilder $builder
* @param sbyte
* @return void
*/
public static function addSignedEnum(FlatBufferBuilder $builder, $signedEnum)
{
$builder->addSbyteX(48, $signedEnum, -1);
}
/**
* @param FlatBufferBuilder $builder
* @return int table offset