start test: val array()... test: template<typename T> val array(const std::vector<T> vec)... test: template<typename Iter> val array(Iter begin, Iter end)... test: val object()... test: val undefined()... test: val null()... test: val global(const char* name = 0)... test: template<typename T> explicit val(T&& value)... test: val(const char* v)... test: val()... test: bool isNull()... test: bool isUndefined()... test: bool isTrue()... test: bool isFalse()... test: bool isNumber()... test: bool isString()... test: bool isArray()... test: val& operator=(val&& v)... test: bool equals(const val& v)... test: bool operator==(const val& v)... test: bool operator!=(const val& v)... test: bool strictlyEquals(const val& v)... test: bool operator>(const val& v)... test: bool operator>= (const val& v)... test: bool operator<(const val& v)... test: bool operator<= (const val& v)... test: bool operator!()... test: template<typename... Args> val new_(Args&&... args)... test: template<typename T> val operator[](const T& key)... test: template<typename K, typename V> void set(const K& key, const V& value)... test: template<typename... Args> val operator()(Args&&... args)... test: template<typename ReturnValue, typename... Args> ReturnValue call(const char* name, Args&&... args)... test: template<typename T, typename ...Policies> T as(Policies...)... test: val typeOf()... test: bool instanceof(const val& v)... test: bool in(const val& v)... test: template<typename T> bool delete_(const T& property)... test: void throw_() const... test: template<typename T> std::vector<T> vecFromJSArray(const val& v)... test: template<typename T> std::vector<T *> vecFromJSArray(const val& v)... test: template<typename T> std::vector<T> convertJSArrayToNumberVector(const val& v)... test: val u8string(const char* s)... test: val u16string(const char16_t* s)... test: val set() with policy... end