     console.time 'oridomiConstruction' if devMode
     # If the browser doesn't support oriDomi, return the element unmodified.
     return @el unless oriDomiSupport
-
     # If the constructor wasn't called with the `new` keyword, invoke it again.
-    unless @ instanceof OriDomi
-      return new oriDomi @el, @settings
+    return new oriDomi @el, @settings unless @ instanceof OriDomi
+    # Return if the first argument isn't a DOM element.
+    if not @el or @el.nodeType isnt 1
+      return console.warn 'oriDomi: First argument must be a DOM element' if devMode
 
     # Extend any passed options with the defaults map.
     @settings = extendObj options, defaults
-
-    # Return if the first argument isn't a DOM element.
-    if not @el or @el.nodeType isnt 1
-      console.warn 'oriDomi: First argument must be a DOM element' if devMode
-      return
 
     # Clone the target element and save a copy of it.
     @cleanEl = @el.cloneNode true

    hyphenated = "-#{ prefix.toLowerCase() }-linear-gradient"
    testEl.style.backgroundImage = "#{ hyphenated }(left, #000, #fff)"
    # After setting a gradient background on the test div, attempt to retrieve it.
    unless testEl.style.backgroundImage.indexOf('gradient') is -1
      return hyphenated
  # If none of the hyphenated values worked, return the unprefixed version.
  'linear-gradient'

# The default cursor style is set to `grab` to prompt the user to interact with the element.

  capProp = prop.charAt(0).toUpperCase() + prop.slice 1
  # Loop through the vendor prefix list and return when we find a match.
  for prefix in prefixList
    return full if testEl.style[(full = prefix + capProp)]?
  # If no matches are found, return false to denote that the browser is missing this property.
  false

