blob: 618e6f14de27c02792a7dcfe0d84b0d3d8f11c5a [file] [log] [blame]
This tests wrapper class names for both JavaScript and Objective-C.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Basics
PASS jsWrapperClass(document.createAttribute()) is 'Attr'
PASS objCWrapperClass(document.createAttribute()) is 'DOMAttr'
PASS jsWrapperClass(document.createComment()) is 'Comment'
PASS objCWrapperClass(document.createComment()) is 'DOMComment'
PASS jsWrapperClass(document.createDocumentFragment()) is 'DocumentFragment'
PASS objCWrapperClass(document.createDocumentFragment()) is 'DOMDocumentFragment'
PASS jsWrapperClass(document.implementation) is 'DOMImplementation'
PASS objCWrapperClass(document.implementation) is 'DOMImplementation'
PASS jsWrapperClass(root.attributes) is 'NamedNodeMap'
PASS objCWrapperClass(root.attributes) is 'DOMNamedNodeMap'
PASS jsWrapperClass(document.createNodeIterator(root, 0, null, false)) is 'NodeIterator'
PASS objCWrapperClass(document.createNodeIterator(root, 0, null, false)) is 'DOMNodeIterator'
PASS jsWrapperClass(document.getElementsByTagName('div')) is 'NodeList'
PASS objCWrapperClass(document.getElementsByTagName('div')) is 'DOMNodeList'
PASS jsWrapperClass(document.createRange()) is 'Range'
PASS objCWrapperClass(document.createRange()) is 'DOMRange'
PASS jsWrapperClass(document.createTextNode()) is 'Text'
PASS objCWrapperClass(document.createTextNode()) is 'DOMText'
PASS jsWrapperClass(document.createTreeWalker(root, 0, null, false)) is 'TreeWalker'
PASS objCWrapperClass(document.createTreeWalker(root, 0, null, false)) is 'DOMTreeWalker'
XML
PASS jsWrapperClass(xmlDocument) is 'Document'
PASS objCWrapperClass(xmlDocument) is 'DOMDocument'
PASS jsWrapperClass(xmlDocument.createCDATASection()) is 'CDATASection'
PASS objCWrapperClass(xmlDocument.createCDATASection()) is 'DOMCDATASection'
PASS jsWrapperClass(xmlDocument.createElementNS('x', 'x', 'x')) is 'Element'
PASS objCWrapperClass(xmlDocument.createElementNS('x', 'x', 'x')) is 'DOMElement'
PASS jsWrapperClass(xmlDocument.createEntityReference()) is 'EntityReference'
PASS objCWrapperClass(xmlDocument.createEntityReference()) is 'DOMEntityReference'
PASS jsWrapperClass(xmlDocument.createProcessingInstruction()) is 'ProcessingInstruction'
PASS objCWrapperClass(xmlDocument.createProcessingInstruction()) is 'DOMProcessingInstruction'
Events
PASS jsWrapperClass(document.createEvent('Event')) is 'Event'
PASS objCWrapperClass(document.createEvent('Event')) is 'DOMEvent'
PASS jsWrapperClass(document.createEvent('KeyboardEvent')) is 'KeyboardEvent'
PASS objCWrapperClass(document.createEvent('KeyboardEvent')) is 'DOMKeyboardEvent'
PASS jsWrapperClass(document.createEvent('MouseEvent')) is 'MouseEvent'
PASS objCWrapperClass(document.createEvent('MouseEvent')) is 'DOMMouseEvent'
PASS jsWrapperClass(document.createEvent('MutationEvent')) is 'MutationEvent'
PASS objCWrapperClass(document.createEvent('MutationEvent')) is 'DOMMutationEvent'
PASS jsWrapperClass(document.createEvent('OverflowEvent')) is 'OverflowEvent'
PASS objCWrapperClass(document.createEvent('OverflowEvent')) is 'DOMOverflowEvent'
PASS jsWrapperClass(document.createEvent('TextEvent')) is 'TextEvent'
PASS objCWrapperClass(document.createEvent('TextEvent')) is 'DOMTextEvent'
PASS jsWrapperClass(document.createEvent('UIEvent')) is 'UIEvent'
PASS objCWrapperClass(document.createEvent('UIEvent')) is 'DOMUIEvent'
PASS jsWrapperClass(document.createEvent('WheelEvent')) is 'WheelEvent'
PASS objCWrapperClass(document.createEvent('WheelEvent')) is 'DOMWheelEvent'
CSS DOM
PASS jsWrapperClass(document.styleSheets) is 'StyleSheetList'
PASS objCWrapperClass(document.styleSheets) is 'DOMStyleSheetList'
PASS jsWrapperClass(stylesheet) is 'CSSStyleSheet'
PASS objCWrapperClass(stylesheet) is 'DOMCSSStyleSheet'
PASS jsWrapperClass(stylesheet.cssRules) is 'CSSRuleList'
PASS objCWrapperClass(stylesheet.cssRules) is 'DOMCSSRuleList'
PASS jsWrapperClass(stylesheet.cssRules.item(0)) is 'CSSStyleRule'
PASS objCWrapperClass(stylesheet.cssRules.item(0)) is 'DOMCSSStyleRule'
PASS jsWrapperClass(stylesheet.cssRules.item(0).style) is 'CSSStyleDeclaration'
PASS objCWrapperClass(stylesheet.cssRules.item(0).style) is 'DOMCSSStyleDeclaration'
PASS jsWrapperClass(stylesheet.cssRules.item(0).style.getPropertyCSSValue('color')) is 'CSSPrimitiveValue'
PASS objCWrapperClass(stylesheet.cssRules.item(0).style.getPropertyCSSValue('color')) is 'DOMCSSPrimitiveValue'
PASS jsWrapperClass(stylesheet.cssRules.item(0).style.getPropertyCSSValue('color').getRGBColorValue()) is 'RGBColor'
PASS objCWrapperClass(stylesheet.cssRules.item(0).style.getPropertyCSSValue('color').getRGBColorValue()) is 'DOMRGBColor'
PASS jsWrapperClass(stylesheet.cssRules.item(0).style.getPropertyCSSValue('clip').getRectValue()) is 'Rect'
PASS objCWrapperClass(stylesheet.cssRules.item(0).style.getPropertyCSSValue('clip').getRectValue()) is 'DOMRect'
PASS jsWrapperClass(stylesheet.cssRules.item(0).style.getPropertyCSSValue('content')) is 'CSSValueList'
PASS objCWrapperClass(stylesheet.cssRules.item(0).style.getPropertyCSSValue('content')) is 'DOMCSSValueList'
PASS jsWrapperClass(stylesheet.cssRules.item(0).style.getPropertyCSSValue('content').item(0).getCounterValue()) is 'Counter'
PASS objCWrapperClass(stylesheet.cssRules.item(0).style.getPropertyCSSValue('content').item(0).getCounterValue()) is 'DOMCounter'
PASS jsWrapperClass(stylesheet.media) is 'MediaList'
PASS objCWrapperClass(stylesheet.media) is 'DOMMediaList'
XPath
PASS jsWrapperClass(document.createExpression('//*', document.createNSResolver(document))) is 'XPathExpression'
PASS objCWrapperClass(document.createExpression('//*', document.createNSResolver(document))) is 'DOMXPathExpression'
PASS jsWrapperClass(document.evaluate('//*', document, document.createNSResolver(document), 0, null)) is 'XPathResult'
PASS objCWrapperClass(document.evaluate('//*', document, document.createNSResolver(document), 0, null)) is 'DOMXPathResult'
Other
PASS jsWrapperClass(window) is 'DOMWindow'
PASS objCWrapperClass(window) is 'DOMAbstractView'
HTML DOM
PASS jsWrapperClass(root.children) is 'HTMLCollection'
PASS objCWrapperClass(root.children) is 'DOMHTMLCollection'
PASS jsWrapperClass(document) is 'HTMLDocument'
PASS objCWrapperClass(document) is 'DOMHTMLDocument'
PASS jsWrapperClass(document.createElement('select').options) is 'HTMLOptionsCollection'
PASS objCWrapperClass(document.createElement('select').options) is 'DOMHTMLOptionsCollection'
HTML Elements
PASS tagJSWrapperClass('a') is 'HTMLAnchorElement'
PASS tagObjCWrapperClass('a') is 'DOMHTMLAnchorElement'
PASS tagJSWrapperClass('abbr') is 'HTMLElement'
PASS tagObjCWrapperClass('abbr') is 'DOMHTMLElement'
PASS tagJSWrapperClass('acronym') is 'HTMLElement'
PASS tagObjCWrapperClass('acronym') is 'DOMHTMLElement'
PASS tagJSWrapperClass('address') is 'HTMLElement'
PASS tagObjCWrapperClass('address') is 'DOMHTMLElement'
PASS tagJSWrapperClass('applet') is 'HTMLAppletElement'
PASS tagObjCWrapperClass('applet') is 'DOMHTMLAppletElement'
PASS tagJSWrapperClass('area') is 'HTMLAreaElement'
PASS tagObjCWrapperClass('area') is 'DOMHTMLAreaElement'
PASS tagJSWrapperClass('b') is 'HTMLElement'
PASS tagObjCWrapperClass('b') is 'DOMHTMLElement'
PASS tagJSWrapperClass('base') is 'HTMLBaseElement'
PASS tagObjCWrapperClass('base') is 'DOMHTMLBaseElement'
PASS tagJSWrapperClass('basefont') is 'HTMLBaseFontElement'
PASS tagObjCWrapperClass('basefont') is 'DOMHTMLBaseFontElement'
PASS tagJSWrapperClass('bdo') is 'HTMLElement'
PASS tagObjCWrapperClass('bdo') is 'DOMHTMLElement'
PASS tagJSWrapperClass('big') is 'HTMLElement'
PASS tagObjCWrapperClass('big') is 'DOMHTMLElement'
PASS tagJSWrapperClass('blockquote') is 'HTMLBlockquoteElement'
PASS tagObjCWrapperClass('blockquote') is 'DOMHTMLElement'
PASS tagJSWrapperClass('body') is 'HTMLBodyElement'
PASS tagObjCWrapperClass('body') is 'DOMHTMLBodyElement'
PASS tagJSWrapperClass('br') is 'HTMLBRElement'
PASS tagObjCWrapperClass('br') is 'DOMHTMLBRElement'
PASS tagJSWrapperClass('button') is 'HTMLButtonElement'
PASS tagObjCWrapperClass('button') is 'DOMHTMLButtonElement'
PASS tagJSWrapperClass('canvas') is 'HTMLCanvasElement'
PASS tagObjCWrapperClass('canvas') is 'DOMHTMLCanvasElement'
PASS tagJSWrapperClass('caption') is 'HTMLTableCaptionElement'
PASS tagObjCWrapperClass('caption') is 'DOMHTMLTableCaptionElement'
PASS tagJSWrapperClass('center') is 'HTMLElement'
PASS tagObjCWrapperClass('center') is 'DOMHTMLElement'
PASS tagJSWrapperClass('cite') is 'HTMLElement'
PASS tagObjCWrapperClass('cite') is 'DOMHTMLElement'
PASS tagJSWrapperClass('code') is 'HTMLElement'
PASS tagObjCWrapperClass('code') is 'DOMHTMLElement'
PASS tagJSWrapperClass('col') is 'HTMLTableColElement'
PASS tagObjCWrapperClass('col') is 'DOMHTMLTableColElement'
PASS tagJSWrapperClass('colgroup') is 'HTMLTableColElement'
PASS tagObjCWrapperClass('colgroup') is 'DOMHTMLTableColElement'
PASS tagJSWrapperClass('dd') is 'HTMLElement'
PASS tagObjCWrapperClass('dd') is 'DOMHTMLElement'
PASS tagJSWrapperClass('del') is 'HTMLModElement'
PASS tagObjCWrapperClass('del') is 'DOMHTMLModElement'
PASS tagJSWrapperClass('dfn') is 'HTMLElement'
PASS tagObjCWrapperClass('dfn') is 'DOMHTMLElement'
PASS tagJSWrapperClass('dir') is 'HTMLDirectoryElement'
PASS tagObjCWrapperClass('dir') is 'DOMHTMLDirectoryElement'
PASS tagJSWrapperClass('div') is 'HTMLDivElement'
PASS tagObjCWrapperClass('div') is 'DOMHTMLDivElement'
PASS tagJSWrapperClass('dl') is 'HTMLDListElement'
PASS tagObjCWrapperClass('dl') is 'DOMHTMLDListElement'
PASS tagJSWrapperClass('dt') is 'HTMLElement'
PASS tagObjCWrapperClass('dt') is 'DOMHTMLElement'
PASS tagJSWrapperClass('em') is 'HTMLElement'
PASS tagObjCWrapperClass('em') is 'DOMHTMLElement'
PASS tagJSWrapperClass('embed') is 'HTMLEmbedElement'
PASS tagObjCWrapperClass('embed') is 'DOMHTMLEmbedElement'
PASS tagJSWrapperClass('fieldset') is 'HTMLFieldSetElement'
PASS tagObjCWrapperClass('fieldset') is 'DOMHTMLFieldSetElement'
PASS tagJSWrapperClass('font') is 'HTMLFontElement'
PASS tagObjCWrapperClass('font') is 'DOMHTMLFontElement'
PASS tagJSWrapperClass('form') is 'HTMLFormElement'
PASS tagObjCWrapperClass('form') is 'DOMHTMLFormElement'
PASS tagJSWrapperClass('frame') is 'HTMLFrameElement'
PASS tagObjCWrapperClass('frame') is 'DOMHTMLFrameElement'
PASS tagJSWrapperClass('frameset') is 'HTMLFrameSetElement'
PASS tagObjCWrapperClass('frameset') is 'DOMHTMLFrameSetElement'
PASS tagJSWrapperClass('head') is 'HTMLHeadElement'
PASS tagObjCWrapperClass('head') is 'DOMHTMLHeadElement'
PASS tagJSWrapperClass('h1') is 'HTMLHeadingElement'
PASS tagObjCWrapperClass('h1') is 'DOMHTMLHeadingElement'
PASS tagJSWrapperClass('h2') is 'HTMLHeadingElement'
PASS tagObjCWrapperClass('h2') is 'DOMHTMLHeadingElement'
PASS tagJSWrapperClass('h3') is 'HTMLHeadingElement'
PASS tagObjCWrapperClass('h3') is 'DOMHTMLHeadingElement'
PASS tagJSWrapperClass('h4') is 'HTMLHeadingElement'
PASS tagObjCWrapperClass('h4') is 'DOMHTMLHeadingElement'
PASS tagJSWrapperClass('h5') is 'HTMLHeadingElement'
PASS tagObjCWrapperClass('h5') is 'DOMHTMLHeadingElement'
PASS tagJSWrapperClass('h6') is 'HTMLHeadingElement'
PASS tagObjCWrapperClass('h6') is 'DOMHTMLHeadingElement'
PASS tagJSWrapperClass('hr') is 'HTMLHRElement'
PASS tagObjCWrapperClass('hr') is 'DOMHTMLHRElement'
PASS tagJSWrapperClass('html') is 'HTMLHtmlElement'
PASS tagObjCWrapperClass('html') is 'DOMHTMLHtmlElement'
PASS tagJSWrapperClass('i') is 'HTMLElement'
PASS tagObjCWrapperClass('i') is 'DOMHTMLElement'
PASS tagJSWrapperClass('iframe') is 'HTMLIFrameElement'
PASS tagObjCWrapperClass('iframe') is 'DOMHTMLIFrameElement'
PASS tagJSWrapperClass('image') is 'HTMLImageElement'
PASS tagObjCWrapperClass('image') is 'DOMHTMLImageElement'
PASS tagJSWrapperClass('img') is 'HTMLImageElement'
PASS tagObjCWrapperClass('img') is 'DOMHTMLImageElement'
PASS tagJSWrapperClass('input') is 'HTMLInputElement'
PASS tagObjCWrapperClass('input') is 'DOMHTMLInputElement'
PASS tagJSWrapperClass('ins') is 'HTMLModElement'
PASS tagObjCWrapperClass('ins') is 'DOMHTMLModElement'
PASS tagJSWrapperClass('isindex') is 'HTMLIsIndexElement'
PASS tagObjCWrapperClass('isindex') is 'DOMHTMLIsIndexElement'
PASS tagJSWrapperClass('kbd') is 'HTMLElement'
PASS tagObjCWrapperClass('kbd') is 'DOMHTMLElement'
PASS tagJSWrapperClass('keygen') is 'HTMLSelectElement'
PASS tagObjCWrapperClass('keygen') is 'DOMHTMLSelectElement'
PASS tagJSWrapperClass('label') is 'HTMLLabelElement'
PASS tagObjCWrapperClass('label') is 'DOMHTMLLabelElement'
PASS tagJSWrapperClass('layer') is 'HTMLElement'
PASS tagObjCWrapperClass('layer') is 'DOMHTMLElement'
PASS tagJSWrapperClass('legend') is 'HTMLLegendElement'
PASS tagObjCWrapperClass('legend') is 'DOMHTMLLegendElement'
PASS tagJSWrapperClass('li') is 'HTMLLIElement'
PASS tagObjCWrapperClass('li') is 'DOMHTMLLIElement'
PASS tagJSWrapperClass('link') is 'HTMLLinkElement'
PASS tagObjCWrapperClass('link') is 'DOMHTMLLinkElement'
PASS tagJSWrapperClass('listing') is 'HTMLPreElement'
PASS tagObjCWrapperClass('listing') is 'DOMHTMLPreElement'
PASS tagJSWrapperClass('map') is 'HTMLMapElement'
PASS tagObjCWrapperClass('map') is 'DOMHTMLMapElement'
PASS tagJSWrapperClass('marquee') is 'HTMLMarqueeElement'
PASS tagObjCWrapperClass('marquee') is 'DOMHTMLMarqueeElement'
PASS tagJSWrapperClass('menu') is 'HTMLMenuElement'
PASS tagObjCWrapperClass('menu') is 'DOMHTMLMenuElement'
PASS tagJSWrapperClass('meta') is 'HTMLMetaElement'
PASS tagObjCWrapperClass('meta') is 'DOMHTMLMetaElement'
PASS tagJSWrapperClass('nobr') is 'HTMLElement'
PASS tagObjCWrapperClass('nobr') is 'DOMHTMLElement'
PASS tagJSWrapperClass('noembed') is 'HTMLElement'
PASS tagObjCWrapperClass('noembed') is 'DOMHTMLElement'
PASS tagJSWrapperClass('noframes') is 'HTMLElement'
PASS tagObjCWrapperClass('noframes') is 'DOMHTMLElement'
PASS tagJSWrapperClass('nolayer') is 'HTMLElement'
PASS tagObjCWrapperClass('nolayer') is 'DOMHTMLElement'
PASS tagJSWrapperClass('noscript') is 'HTMLElement'
PASS tagObjCWrapperClass('noscript') is 'DOMHTMLElement'
PASS tagJSWrapperClass('object') is 'HTMLObjectElement'
PASS tagObjCWrapperClass('object') is 'DOMHTMLObjectElement'
PASS tagJSWrapperClass('ol') is 'HTMLOListElement'
PASS tagObjCWrapperClass('ol') is 'DOMHTMLOListElement'
PASS tagJSWrapperClass('optgroup') is 'HTMLOptGroupElement'
PASS tagObjCWrapperClass('optgroup') is 'DOMHTMLOptGroupElement'
PASS tagJSWrapperClass('option') is 'HTMLOptionElement'
PASS tagObjCWrapperClass('option') is 'DOMHTMLOptionElement'
PASS tagJSWrapperClass('p') is 'HTMLParagraphElement'
PASS tagObjCWrapperClass('p') is 'DOMHTMLParagraphElement'
PASS tagJSWrapperClass('param') is 'HTMLParamElement'
PASS tagObjCWrapperClass('param') is 'DOMHTMLParamElement'
PASS tagJSWrapperClass('plaintext') is 'HTMLElement'
PASS tagObjCWrapperClass('plaintext') is 'DOMHTMLElement'
PASS tagJSWrapperClass('pre') is 'HTMLPreElement'
PASS tagObjCWrapperClass('pre') is 'DOMHTMLPreElement'
PASS tagJSWrapperClass('q') is 'HTMLQuoteElement'
PASS tagObjCWrapperClass('q') is 'DOMHTMLQuoteElement'
PASS tagJSWrapperClass('s') is 'HTMLElement'
PASS tagObjCWrapperClass('s') is 'DOMHTMLElement'
PASS tagJSWrapperClass('samp') is 'HTMLElement'
PASS tagObjCWrapperClass('samp') is 'DOMHTMLElement'
PASS tagJSWrapperClass('script') is 'HTMLScriptElement'
PASS tagObjCWrapperClass('script') is 'DOMHTMLScriptElement'
PASS tagJSWrapperClass('select') is 'HTMLSelectElement'
PASS tagObjCWrapperClass('select') is 'DOMHTMLSelectElement'
PASS tagJSWrapperClass('small') is 'HTMLElement'
PASS tagObjCWrapperClass('small') is 'DOMHTMLElement'
PASS tagJSWrapperClass('span') is 'HTMLElement'
PASS tagObjCWrapperClass('span') is 'DOMHTMLElement'
PASS tagJSWrapperClass('strike') is 'HTMLElement'
PASS tagObjCWrapperClass('strike') is 'DOMHTMLElement'
PASS tagJSWrapperClass('strong') is 'HTMLElement'
PASS tagObjCWrapperClass('strong') is 'DOMHTMLElement'
PASS tagJSWrapperClass('style') is 'HTMLStyleElement'
PASS tagObjCWrapperClass('style') is 'DOMHTMLStyleElement'
PASS tagJSWrapperClass('sub') is 'HTMLElement'
PASS tagObjCWrapperClass('sub') is 'DOMHTMLElement'
PASS tagJSWrapperClass('sup') is 'HTMLElement'
PASS tagObjCWrapperClass('sup') is 'DOMHTMLElement'
PASS tagJSWrapperClass('table') is 'HTMLTableElement'
PASS tagObjCWrapperClass('table') is 'DOMHTMLTableElement'
PASS tagJSWrapperClass('tbody') is 'HTMLTableSectionElement'
PASS tagObjCWrapperClass('tbody') is 'DOMHTMLTableSectionElement'
PASS tagJSWrapperClass('td') is 'HTMLTableCellElement'
PASS tagObjCWrapperClass('td') is 'DOMHTMLTableCellElement'
PASS tagJSWrapperClass('textarea') is 'HTMLTextAreaElement'
PASS tagObjCWrapperClass('textarea') is 'DOMHTMLTextAreaElement'
PASS tagJSWrapperClass('tfoot') is 'HTMLTableSectionElement'
PASS tagObjCWrapperClass('tfoot') is 'DOMHTMLTableSectionElement'
PASS tagJSWrapperClass('th') is 'HTMLTableCellElement'
PASS tagObjCWrapperClass('th') is 'DOMHTMLTableCellElement'
PASS tagJSWrapperClass('thead') is 'HTMLTableSectionElement'
PASS tagObjCWrapperClass('thead') is 'DOMHTMLTableSectionElement'
PASS tagJSWrapperClass('title') is 'HTMLTitleElement'
PASS tagObjCWrapperClass('title') is 'DOMHTMLTitleElement'
PASS tagJSWrapperClass('tr') is 'HTMLTableRowElement'
PASS tagObjCWrapperClass('tr') is 'DOMHTMLTableRowElement'
PASS tagJSWrapperClass('tt') is 'HTMLElement'
PASS tagObjCWrapperClass('tt') is 'DOMHTMLElement'
PASS tagJSWrapperClass('u') is 'HTMLElement'
PASS tagObjCWrapperClass('u') is 'DOMHTMLElement'
PASS tagJSWrapperClass('ul') is 'HTMLUListElement'
PASS tagObjCWrapperClass('ul') is 'DOMHTMLUListElement'
PASS tagJSWrapperClass('var') is 'HTMLElement'
PASS tagObjCWrapperClass('var') is 'DOMHTMLElement'
PASS tagJSWrapperClass('wbr') is 'HTMLElement'
PASS tagObjCWrapperClass('wbr') is 'DOMHTMLElement'
PASS tagJSWrapperClass('xmp') is 'HTMLPreElement'
PASS tagObjCWrapperClass('xmp') is 'DOMHTMLPreElement'
JavaScript types
PASS objCWrapperClass(null) is 'nil'
PASS objCWrapperClass(undefined) is 'WebUndefined'
PASS objCWrapperClass(0) is 'NSCFNumber'
PASS objCWrapperClass(1) is 'NSCFNumber'
PASS objCWrapperClass(false) is 'NSCFBoolean'
PASS objCWrapperClass(true) is 'NSCFBoolean'
PASS objCWrapperClass('') is 'NSCFString'
PASS objCWrapperClass({ }) is 'WebScriptObject'
PASS objCWrapperClass([ ]) is 'WebScriptObject'
PASS objCObjectOfClass('NSNull') is null
PASS typeof objCObjectOfClass('') is 'undefined'
PASS typeof objCObjectOfClass('WebUndefined') is 'undefined'
PASS typeof objCObjectOfClass('NSCFBoolean') is 'boolean'
PASS typeof objCObjectOfClass('NSCFNumber') is 'number'
PASS typeof objCObjectOfClass('NSCFString') is 'string'
PASS typeof objCObjectOfClass('WebScriptObject') is 'object'
PASS objCObjectOfClass('NSArray') instanceof Array is true