Check whether Touch and TouchEvent constructors are supported

Touch.length = 1 (supported)
TouchEvent.length = 1 (supported)

Creating a Touch object using constructor

    t = new Touch({
      identifier: 42,
      target: document.body,
      clientX: 200,
      clientY: 200,
      screenX: 300,
      screenY: 300,
      pageX: 250,
      pageY: 250,
      radiusX: 2.5,
      radiusY: 2.5,
      rotationAngle: 10,
      force: 0.5,
    });
  

Result:

identifier = 42
target = [object HTMLBodyElement]
screenX = 300
screenY = 300
clientX = 200
clientY = 200
pageX = 250
pageY = 250
radiusX = 2.5
radiusY = 2.5
rotationAngle = 10
force = 0.5


Creating a TouchEvent object using constructor

    te = new TouchEvent("touchstart", {
      cancelable: true,
      bubbles: true,
      touches: [t],
      targetTouches: [],
      changedTouches: [t],
      shiftKey: true,
    });
  

Result:

isTrusted = false
touches = [object TouchList]
targetTouches = [object TouchList]
changedTouches = [object TouchList]
altKey = false
metaKey = false
ctrlKey = false
shiftKey = true
view = null
detail = 0
sourceCapabilities = null
which = 0
type = touchstart
target = null
currentTarget = null
eventPhase = 0
bubbles = true
cancelable = true
defaultPrevented = false
composed = false
timeStamp = 107.09999990463257
srcElement = null
returnValue = true
cancelBubble = false


Edit in JS Bin