code: func (l *State) MetaTable(index int) bool {
  	var mt *table
  	switch v := l.indexToValue(index).(type) {
  	case *table:
  		mt = v.metaTable
  	case *userData:
  		mt = v.metaTable
  	default:
  		mt = l.global.metaTable(v)
  	}
  	if mt == nil {
  		return false
  	}
  	l.apiPush(mt)
  	return true
  }
docs: // MetaTable pushes onto the stack the metatable of the value at index.  If
  // the value at index does not have a metatable, the function returns
  // false and nothing is put onto the stack.
  //
  // http://www.lua.org/manual/5.2/manual.html#lua_getmetatable