Lua: 5.3 integer support: Decided that when going from Lua->C, strict integer (as opposed to number) checking is too aggressive by default and should be made a compile time option. -DSWIG_LUG_USE_STRICT_INTEGER_CHECK

You (the user) may compile with -DSWIG_LUG_USE_STRICT_INTEGER_CHECK
  to enforce stricter type checking to allow only integers and fail on numbers (floating point).
  This might be hard for projects updating from pre-Lua 5.3 projects
  because scripters may have freely mixed integers and floating point.
  So this is off by default.

The specific implementation in the non-strict case will first check lua_isinteger and then lua_isnumber. I think lua_isnumber may auto-convert types (like from strings), so that's why I don't just check lua_isnumber and assume it will catch integers too. It would be bad if Lua converted from integer to float and then convert back to integer when you get the value.