121939df44de1705786c545cd1bf519d47250322dBen Murdoch/* 221939df44de1705786c545cd1bf519d47250322dBen Murdoch This file is part of the WebKit open source project. 321939df44de1705786c545cd1bf519d47250322dBen Murdoch This file has been generated by generate-bindings.pl. DO NOT MODIFY! 421939df44de1705786c545cd1bf519d47250322dBen Murdoch 521939df44de1705786c545cd1bf519d47250322dBen Murdoch This library is free software; you can redistribute it and/or 621939df44de1705786c545cd1bf519d47250322dBen Murdoch modify it under the terms of the GNU Library General Public 721939df44de1705786c545cd1bf519d47250322dBen Murdoch License as published by the Free Software Foundation; either 821939df44de1705786c545cd1bf519d47250322dBen Murdoch version 2 of the License, or (at your option) any later version. 921939df44de1705786c545cd1bf519d47250322dBen Murdoch 1021939df44de1705786c545cd1bf519d47250322dBen Murdoch This library is distributed in the hope that it will be useful, 1121939df44de1705786c545cd1bf519d47250322dBen Murdoch but WITHOUT ANY WARRANTY; without even the implied warranty of 1221939df44de1705786c545cd1bf519d47250322dBen Murdoch MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1321939df44de1705786c545cd1bf519d47250322dBen Murdoch Library General Public License for more details. 1421939df44de1705786c545cd1bf519d47250322dBen Murdoch 1521939df44de1705786c545cd1bf519d47250322dBen Murdoch You should have received a copy of the GNU Library General Public License 1621939df44de1705786c545cd1bf519d47250322dBen Murdoch along with this library; see the file COPYING.LIB. If not, write to 1721939df44de1705786c545cd1bf519d47250322dBen Murdoch the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 1821939df44de1705786c545cd1bf519d47250322dBen Murdoch Boston, MA 02110-1301, USA. 1921939df44de1705786c545cd1bf519d47250322dBen Murdoch*/ 2021939df44de1705786c545cd1bf519d47250322dBen Murdoch 2121939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "config.h" 2221939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "JSTestObj.h" 2321939df44de1705786c545cd1bf519d47250322dBen Murdoch 24db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "ExceptionCode.h" 2506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#include "HTMLNames.h" 26ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#include "IDBBindingUtilities.h" 27ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#include "IDBKey.h" 28dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "JSDOMBinding.h" 2921939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "JSEventListener.h" 304576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#include "JSOptionsObject.h" 31db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "JSTestCallback.h" 3221939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "JSTestObj.h" 3321939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "JSlog.h" 3421939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "KURL.h" 3528040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#include "ScriptArguments.h" 3621939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "ScriptCallStack.h" 3728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#include "ScriptCallStackFactory.h" 3821939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "SerializedScriptValue.h" 3921939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "TestObj.h" 4021939df44de1705786c545cd1bf519d47250322dBen Murdoch#include <runtime/Error.h> 4121939df44de1705786c545cd1bf519d47250322dBen Murdoch#include <runtime/JSNumberCell.h> 4221939df44de1705786c545cd1bf519d47250322dBen Murdoch#include <runtime/JSString.h> 4321939df44de1705786c545cd1bf519d47250322dBen Murdoch#include <wtf/GetPtr.h> 4421939df44de1705786c545cd1bf519d47250322dBen Murdoch 4521939df44de1705786c545cd1bf519d47250322dBen Murdochusing namespace JSC; 4621939df44de1705786c545cd1bf519d47250322dBen Murdoch 4721939df44de1705786c545cd1bf519d47250322dBen Murdochnamespace WebCore { 4821939df44de1705786c545cd1bf519d47250322dBen Murdoch 4921939df44de1705786c545cd1bf519d47250322dBen MurdochASSERT_CLASS_FITS_IN_CELL(JSTestObj); 5021939df44de1705786c545cd1bf519d47250322dBen Murdoch 5121939df44de1705786c545cd1bf519d47250322dBen Murdoch/* Hash table */ 5221939df44de1705786c545cd1bf519d47250322dBen Murdoch#if ENABLE(JIT) 5321939df44de1705786c545cd1bf519d47250322dBen Murdoch#define THUNK_GENERATOR(generator) , generator 5421939df44de1705786c545cd1bf519d47250322dBen Murdoch#else 5521939df44de1705786c545cd1bf519d47250322dBen Murdoch#define THUNK_GENERATOR(generator) 5621939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif 5721939df44de1705786c545cd1bf519d47250322dBen Murdoch 58f05b935882198ccf7d81675736e3aeb089c5113aBen Murdochstatic const HashTableValue JSTestObjTableValues[37] = 5921939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 606c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "readOnlyIntAttr", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyIntAttr), (intptr_t)0 THUNK_GENERATOR(0) }, 616c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "readOnlyStringAttr", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyStringAttr), (intptr_t)0 THUNK_GENERATOR(0) }, 626c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "readOnlyTestObjAttr", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyTestObjAttr), (intptr_t)0 THUNK_GENERATOR(0) }, 634576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang { "shortAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjShortAttr), (intptr_t)setJSTestObjShortAttr THUNK_GENERATOR(0) }, 644576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang { "unsignedShortAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedShortAttr), (intptr_t)setJSTestObjUnsignedShortAttr THUNK_GENERATOR(0) }, 6521939df44de1705786c545cd1bf519d47250322dBen Murdoch { "intAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjIntAttr), (intptr_t)setJSTestObjIntAttr THUNK_GENERATOR(0) }, 6621939df44de1705786c545cd1bf519d47250322dBen Murdoch { "longLongAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjLongLongAttr), (intptr_t)setJSTestObjLongLongAttr THUNK_GENERATOR(0) }, 6721939df44de1705786c545cd1bf519d47250322dBen Murdoch { "unsignedLongLongAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedLongLongAttr), (intptr_t)setJSTestObjUnsignedLongLongAttr THUNK_GENERATOR(0) }, 6821939df44de1705786c545cd1bf519d47250322dBen Murdoch { "stringAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttr), (intptr_t)setJSTestObjStringAttr THUNK_GENERATOR(0) }, 6921939df44de1705786c545cd1bf519d47250322dBen Murdoch { "testObjAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjTestObjAttr), (intptr_t)setJSTestObjTestObjAttr THUNK_GENERATOR(0) }, 70db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { "XMLObjAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjXMLObjAttr), (intptr_t)setJSTestObjXMLObjAttr THUNK_GENERATOR(0) }, 7168513a70bcd92384395513322f1b801e7bf9c729Steve Block { "create", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCreate), (intptr_t)setJSTestObjCreate THUNK_GENERATOR(0) }, 7206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "reflectedStringAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t)setJSTestObjReflectedStringAttr THUNK_GENERATOR(0) }, 7306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "reflectedIntegralAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedIntegralAttr), (intptr_t)setJSTestObjReflectedIntegralAttr THUNK_GENERATOR(0) }, 74f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch { "reflectedUnsignedIntegralAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedUnsignedIntegralAttr), (intptr_t)setJSTestObjReflectedUnsignedIntegralAttr THUNK_GENERATOR(0) }, 7506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "reflectedBooleanAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedBooleanAttr), (intptr_t)setJSTestObjReflectedBooleanAttr THUNK_GENERATOR(0) }, 7606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "reflectedURLAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedURLAttr), (intptr_t)setJSTestObjReflectedURLAttr THUNK_GENERATOR(0) }, 77e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke { "reflectedNonEmptyURLAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedNonEmptyURLAttr), (intptr_t)setJSTestObjReflectedNonEmptyURLAttr THUNK_GENERATOR(0) }, 7806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "reflectedStringAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t)setJSTestObjReflectedStringAttr THUNK_GENERATOR(0) }, 7906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "reflectedCustomIntegralAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomIntegralAttr), (intptr_t)setJSTestObjReflectedCustomIntegralAttr THUNK_GENERATOR(0) }, 8006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "reflectedCustomBooleanAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomBooleanAttr), (intptr_t)setJSTestObjReflectedCustomBooleanAttr THUNK_GENERATOR(0) }, 81e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke { "reflectedCustomURLAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomURLAttr), (intptr_t)setJSTestObjReflectedCustomURLAttr THUNK_GENERATOR(0) }, 82e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke { "reflectedCustomNonEmptyURLAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomNonEmptyURLAttr), (intptr_t)setJSTestObjReflectedCustomNonEmptyURLAttr THUNK_GENERATOR(0) }, 8321939df44de1705786c545cd1bf519d47250322dBen Murdoch { "attrWithGetterException", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttrWithGetterException), (intptr_t)setJSTestObjAttrWithGetterException THUNK_GENERATOR(0) }, 8406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "attrWithSetterException", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttrWithSetterException), (intptr_t)setJSTestObjAttrWithSetterException THUNK_GENERATOR(0) }, 8506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "stringAttrWithGetterException", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrWithGetterException), (intptr_t)setJSTestObjStringAttrWithGetterException THUNK_GENERATOR(0) }, 8606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "stringAttrWithSetterException", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrWithSetterException), (intptr_t)setJSTestObjStringAttrWithSetterException THUNK_GENERATOR(0) }, 8721939df44de1705786c545cd1bf519d47250322dBen Murdoch { "customAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCustomAttr), (intptr_t)setJSTestObjCustomAttr THUNK_GENERATOR(0) }, 886c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "scriptStringAttr", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjScriptStringAttr), (intptr_t)0 THUNK_GENERATOR(0) }, 8906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if ENABLE(Condition1) 9006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "conditionalAttr1", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr1), (intptr_t)setJSTestObjConditionalAttr1 THUNK_GENERATOR(0) }, 9106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif 9206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if ENABLE(Condition1) && ENABLE(Condition2) 9306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "conditionalAttr2", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr2), (intptr_t)setJSTestObjConditionalAttr2 THUNK_GENERATOR(0) }, 9406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif 9506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if ENABLE(Condition1) || ENABLE(Condition2) 9606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen { "conditionalAttr3", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr3), (intptr_t)setJSTestObjConditionalAttr3 THUNK_GENERATOR(0) }, 9706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif 98545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch { "description", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjDescription), (intptr_t)0 THUNK_GENERATOR(0) }, 99545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch { "id", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjId), (intptr_t)setJSTestObjId THUNK_GENERATOR(0) }, 100545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch { "hash", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjHash), (intptr_t)0 THUNK_GENERATOR(0) }, 1016c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "constructor", DontEnum | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConstructor), (intptr_t)0 THUNK_GENERATOR(0) }, 10221939df44de1705786c545cd1bf519d47250322dBen Murdoch { 0, 0, 0, 0 THUNK_GENERATOR(0) } 10321939df44de1705786c545cd1bf519d47250322dBen Murdoch}; 10421939df44de1705786c545cd1bf519d47250322dBen Murdoch 10521939df44de1705786c545cd1bf519d47250322dBen Murdoch#undef THUNK_GENERATOR 1064576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangstatic JSC_CONST_HASHTABLE HashTable JSTestObjTable = { 133, 127, JSTestObjTableValues, 0 }; 10721939df44de1705786c545cd1bf519d47250322dBen Murdoch/* Hash table for constructor */ 10821939df44de1705786c545cd1bf519d47250322dBen Murdoch#if ENABLE(JIT) 10921939df44de1705786c545cd1bf519d47250322dBen Murdoch#define THUNK_GENERATOR(generator) , generator 11021939df44de1705786c545cd1bf519d47250322dBen Murdoch#else 11121939df44de1705786c545cd1bf519d47250322dBen Murdoch#define THUNK_GENERATOR(generator) 11221939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif 11321939df44de1705786c545cd1bf519d47250322dBen Murdoch 1140617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsenstatic const HashTableValue JSTestObjConstructorTableValues[12] = 11521939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 116967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch { "CONST_VALUE_0", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_0), (intptr_t)0 THUNK_GENERATOR(0) }, 117967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch { "CONST_VALUE_1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_1), (intptr_t)0 THUNK_GENERATOR(0) }, 118967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch { "CONST_VALUE_2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_2), (intptr_t)0 THUNK_GENERATOR(0) }, 119967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch { "CONST_VALUE_4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_4), (intptr_t)0 THUNK_GENERATOR(0) }, 120967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch { "CONST_VALUE_8", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_8), (intptr_t)0 THUNK_GENERATOR(0) }, 1210617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen { "CONST_VALUE_9", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_9), (intptr_t)0 THUNK_GENERATOR(0) }, 1220617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen { "CONST_VALUE_10", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_10), (intptr_t)0 THUNK_GENERATOR(0) }, 1230617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen { "CONST_VALUE_11", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_11), (intptr_t)0 THUNK_GENERATOR(0) }, 1240617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen { "CONST_VALUE_12", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_12), (intptr_t)0 THUNK_GENERATOR(0) }, 1250617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen { "CONST_VALUE_13", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_13), (intptr_t)0 THUNK_GENERATOR(0) }, 1260617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen { "CONST_VALUE_14", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_14), (intptr_t)0 THUNK_GENERATOR(0) }, 12721939df44de1705786c545cd1bf519d47250322dBen Murdoch { 0, 0, 0, 0 THUNK_GENERATOR(0) } 12821939df44de1705786c545cd1bf519d47250322dBen Murdoch}; 12921939df44de1705786c545cd1bf519d47250322dBen Murdoch 13021939df44de1705786c545cd1bf519d47250322dBen Murdoch#undef THUNK_GENERATOR 1310617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsenstatic JSC_CONST_HASHTABLE HashTable JSTestObjConstructorTable = { 33, 31, JSTestObjConstructorTableValues, 0 }; 132967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 133967717af5423377c967781471ee106e2bb4e11c8Ben MurdochCOMPILE_ASSERT(0 == TestObj::CONST_VALUE_0, TestObjEnumCONST_VALUE_0IsWrongUseDontCheckEnums); 134967717af5423377c967781471ee106e2bb4e11c8Ben MurdochCOMPILE_ASSERT(1 == TestObj::CONST_VALUE_1, TestObjEnumCONST_VALUE_1IsWrongUseDontCheckEnums); 135967717af5423377c967781471ee106e2bb4e11c8Ben MurdochCOMPILE_ASSERT(2 == TestObj::CONST_VALUE_2, TestObjEnumCONST_VALUE_2IsWrongUseDontCheckEnums); 136967717af5423377c967781471ee106e2bb4e11c8Ben MurdochCOMPILE_ASSERT(4 == TestObj::CONST_VALUE_4, TestObjEnumCONST_VALUE_4IsWrongUseDontCheckEnums); 137967717af5423377c967781471ee106e2bb4e11c8Ben MurdochCOMPILE_ASSERT(8 == TestObj::CONST_VALUE_8, TestObjEnumCONST_VALUE_8IsWrongUseDontCheckEnums); 1380617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenCOMPILE_ASSERT(-1 == TestObj::CONST_VALUE_9, TestObjEnumCONST_VALUE_9IsWrongUseDontCheckEnums); 1390617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenCOMPILE_ASSERT("my constant string" == TestObj::CONST_VALUE_10, TestObjEnumCONST_VALUE_10IsWrongUseDontCheckEnums); 1400617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenCOMPILE_ASSERT(0xffffffff == TestObj::CONST_VALUE_11, TestObjEnumCONST_VALUE_11IsWrongUseDontCheckEnums); 1410617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenCOMPILE_ASSERT(0x01 == TestObj::CONST_VALUE_12, TestObjEnumCONST_VALUE_12IsWrongUseDontCheckEnums); 1420617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenCOMPILE_ASSERT(0X20 == TestObj::CONST_VALUE_13, TestObjEnumCONST_VALUE_13IsWrongUseDontCheckEnums); 1430617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenCOMPILE_ASSERT(0x1abc == TestObj::CONST_VALUE_14, TestObjEnumCONST_VALUE_14IsWrongUseDontCheckEnums); 144967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 14521939df44de1705786c545cd1bf519d47250322dBen Murdochclass JSTestObjConstructor : public DOMConstructorObject { 14621939df44de1705786c545cd1bf519d47250322dBen Murdochpublic: 14706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObjConstructor(JSC::ExecState*, JSDOMGlobalObject*); 14806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 14906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier&, JSC::PropertySlot&); 15006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier&, JSC::PropertyDescriptor&); 15106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen static const JSC::ClassInfo s_info; 1522bde8e466a4451c7319e3a072d118917957d6554Steve Block static PassRefPtr<JSC::Structure> createStructure(JSC::JSGlobalData& globalData, JSC::JSValue prototype) 15321939df44de1705786c545cd1bf519d47250322dBen Murdoch { 1542bde8e466a4451c7319e3a072d118917957d6554Steve Block return JSC::Structure::create(globalData, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount, &s_info); 15521939df44de1705786c545cd1bf519d47250322dBen Murdoch } 15621939df44de1705786c545cd1bf519d47250322dBen Murdochprotected: 15706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::ImplementsHasInstance | DOMConstructorObject::StructureFlags; 15821939df44de1705786c545cd1bf519d47250322dBen Murdoch}; 15921939df44de1705786c545cd1bf519d47250322dBen Murdoch 16081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochconst ClassInfo JSTestObjConstructor::s_info = { "TestObjConstructor", &DOMConstructorObject::s_info, &JSTestObjConstructorTable, 0 }; 16121939df44de1705786c545cd1bf519d47250322dBen Murdoch 16206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSTestObjConstructor::JSTestObjConstructor(ExecState* exec, JSDOMGlobalObject* globalObject) 1632bde8e466a4451c7319e3a072d118917957d6554Steve Block : DOMConstructorObject(JSTestObjConstructor::createStructure(globalObject->globalData(), globalObject->objectPrototype()), globalObject) 16406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 16581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch ASSERT(inherits(&s_info)); 16681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch putDirect(exec->globalData(), exec->propertyNames().prototype, JSTestObjPrototype::self(exec, globalObject), DontDelete | ReadOnly); 16706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 16806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 16921939df44de1705786c545cd1bf519d47250322dBen Murdochbool JSTestObjConstructor::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot) 17021939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 17121939df44de1705786c545cd1bf519d47250322dBen Murdoch return getStaticValueSlot<JSTestObjConstructor, DOMObject>(exec, &JSTestObjConstructorTable, this, propertyName, slot); 17221939df44de1705786c545cd1bf519d47250322dBen Murdoch} 17321939df44de1705786c545cd1bf519d47250322dBen Murdoch 17421939df44de1705786c545cd1bf519d47250322dBen Murdochbool JSTestObjConstructor::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor) 17521939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 17621939df44de1705786c545cd1bf519d47250322dBen Murdoch return getStaticValueDescriptor<JSTestObjConstructor, DOMObject>(exec, &JSTestObjConstructorTable, this, propertyName, descriptor); 17721939df44de1705786c545cd1bf519d47250322dBen Murdoch} 17821939df44de1705786c545cd1bf519d47250322dBen Murdoch 17921939df44de1705786c545cd1bf519d47250322dBen Murdoch/* Hash table for prototype */ 18021939df44de1705786c545cd1bf519d47250322dBen Murdoch#if ENABLE(JIT) 18121939df44de1705786c545cd1bf519d47250322dBen Murdoch#define THUNK_GENERATOR(generator) , generator 18221939df44de1705786c545cd1bf519d47250322dBen Murdoch#else 18321939df44de1705786c545cd1bf519d47250322dBen Murdoch#define THUNK_GENERATOR(generator) 18421939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif 18521939df44de1705786c545cd1bf519d47250322dBen Murdoch 1864576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangstatic const HashTableValue JSTestObjPrototypeTableValues[48] = 1876c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen{ 188967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch { "CONST_VALUE_0", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_0), (intptr_t)0 THUNK_GENERATOR(0) }, 189967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch { "CONST_VALUE_1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_1), (intptr_t)0 THUNK_GENERATOR(0) }, 190967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch { "CONST_VALUE_2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_2), (intptr_t)0 THUNK_GENERATOR(0) }, 191967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch { "CONST_VALUE_4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_4), (intptr_t)0 THUNK_GENERATOR(0) }, 192967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch { "CONST_VALUE_8", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_8), (intptr_t)0 THUNK_GENERATOR(0) }, 1930617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen { "CONST_VALUE_9", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_9), (intptr_t)0 THUNK_GENERATOR(0) }, 1940617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen { "CONST_VALUE_10", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_10), (intptr_t)0 THUNK_GENERATOR(0) }, 1950617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen { "CONST_VALUE_11", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_11), (intptr_t)0 THUNK_GENERATOR(0) }, 1960617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen { "CONST_VALUE_12", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_12), (intptr_t)0 THUNK_GENERATOR(0) }, 1970617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen { "CONST_VALUE_13", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_13), (intptr_t)0 THUNK_GENERATOR(0) }, 1980617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen { "CONST_VALUE_14", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_14), (intptr_t)0 THUNK_GENERATOR(0) }, 1996c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "voidMethod", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionVoidMethod), (intptr_t)0 THUNK_GENERATOR(0) }, 2006c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "voidMethodWithArgs", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionVoidMethodWithArgs), (intptr_t)3 THUNK_GENERATOR(0) }, 2016c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "intMethod", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionIntMethod), (intptr_t)0 THUNK_GENERATOR(0) }, 2026c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "intMethodWithArgs", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionIntMethodWithArgs), (intptr_t)3 THUNK_GENERATOR(0) }, 2036c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "objMethod", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionObjMethod), (intptr_t)0 THUNK_GENERATOR(0) }, 2046c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "objMethodWithArgs", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionObjMethodWithArgs), (intptr_t)3 THUNK_GENERATOR(0) }, 2056c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "methodThatRequiresAllArgs", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodThatRequiresAllArgs), (intptr_t)2 THUNK_GENERATOR(0) }, 2066c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "methodThatRequiresAllArgsAndThrows", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows), (intptr_t)2 THUNK_GENERATOR(0) }, 2076c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "serializedValue", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionSerializedValue), (intptr_t)1 THUNK_GENERATOR(0) }, 208ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block { "idbKey", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionIdbKey), (intptr_t)1 THUNK_GENERATOR(0) }, 2094576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang { "optionsObject", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionOptionsObject), (intptr_t)2 THUNK_GENERATOR(0) }, 2106c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "methodWithException", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithException), (intptr_t)0 THUNK_GENERATOR(0) }, 2116c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "customMethod", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionCustomMethod), (intptr_t)0 THUNK_GENERATOR(0) }, 2126c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "customMethodWithArgs", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionCustomMethodWithArgs), (intptr_t)3 THUNK_GENERATOR(0) }, 2136c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "customArgsAndException", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionCustomArgsAndException), (intptr_t)1 THUNK_GENERATOR(0) }, 2146c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "addEventListener", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionAddEventListener), (intptr_t)3 THUNK_GENERATOR(0) }, 2156c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "removeEventListener", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionRemoveEventListener), (intptr_t)3 THUNK_GENERATOR(0) }, 2166c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "withDynamicFrame", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithDynamicFrame), (intptr_t)0 THUNK_GENERATOR(0) }, 2176c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "withDynamicFrameAndArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithDynamicFrameAndArg), (intptr_t)1 THUNK_GENERATOR(0) }, 2186c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "withDynamicFrameAndOptionalArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg), (intptr_t)2 THUNK_GENERATOR(0) }, 2196c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "withDynamicFrameAndUserGesture", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture), (intptr_t)1 THUNK_GENERATOR(0) }, 2206c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "withDynamicFrameAndUserGestureASAD", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD), (intptr_t)2 THUNK_GENERATOR(0) }, 2216c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "withScriptStateVoid", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithScriptStateVoid), (intptr_t)0 THUNK_GENERATOR(0) }, 2226c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "withScriptStateObj", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithScriptStateObj), (intptr_t)0 THUNK_GENERATOR(0) }, 2236c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "withScriptStateVoidException", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithScriptStateVoidException), (intptr_t)0 THUNK_GENERATOR(0) }, 2246c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "withScriptStateObjException", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithScriptStateObjException), (intptr_t)0 THUNK_GENERATOR(0) }, 225545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch { "withScriptExecutionContext", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithScriptExecutionContext), (intptr_t)0 THUNK_GENERATOR(0) }, 2266c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "methodWithOptionalArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithOptionalArg), (intptr_t)1 THUNK_GENERATOR(0) }, 2276c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "methodWithNonOptionalArgAndOptionalArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg), (intptr_t)2 THUNK_GENERATOR(0) }, 2286c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "methodWithNonOptionalArgAndTwoOptionalArgs", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs), (intptr_t)3 THUNK_GENERATOR(0) }, 229db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { "methodWithCallbackArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithCallbackArg), (intptr_t)1 THUNK_GENERATOR(0) }, 230db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { "methodWithNonCallbackArgAndCallbackArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg), (intptr_t)2 THUNK_GENERATOR(0) }, 231db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { "methodWithCallbackAndOptionalArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg), (intptr_t)1 THUNK_GENERATOR(0) }, 2326c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { "overloadedMethod", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionOverloadedMethod), (intptr_t)2 THUNK_GENERATOR(0) }, 2335abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick { "classMethod", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionClassMethod), (intptr_t)0 THUNK_GENERATOR(0) }, 2345abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick { "classMethodWithOptional", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionClassMethodWithOptional), (intptr_t)1 THUNK_GENERATOR(0) }, 23521939df44de1705786c545cd1bf519d47250322dBen Murdoch { 0, 0, 0, 0 THUNK_GENERATOR(0) } 23621939df44de1705786c545cd1bf519d47250322dBen Murdoch}; 23721939df44de1705786c545cd1bf519d47250322dBen Murdoch 23821939df44de1705786c545cd1bf519d47250322dBen Murdoch#undef THUNK_GENERATOR 2394576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangstatic JSC_CONST_HASHTABLE HashTable JSTestObjPrototypeTable = { 136, 127, JSTestObjPrototypeTableValues, 0 }; 24081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochconst ClassInfo JSTestObjPrototype::s_info = { "TestObjPrototype", &JSC::JSObjectWithGlobalObject::s_info, &JSTestObjPrototypeTable, 0 }; 24121939df44de1705786c545cd1bf519d47250322dBen Murdoch 24221939df44de1705786c545cd1bf519d47250322dBen MurdochJSObject* JSTestObjPrototype::self(ExecState* exec, JSGlobalObject* globalObject) 24321939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 24421939df44de1705786c545cd1bf519d47250322dBen Murdoch return getDOMPrototype<JSTestObj>(exec, globalObject); 24521939df44de1705786c545cd1bf519d47250322dBen Murdoch} 24621939df44de1705786c545cd1bf519d47250322dBen Murdoch 24721939df44de1705786c545cd1bf519d47250322dBen Murdochbool JSTestObjPrototype::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot) 24821939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 249967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch return getStaticPropertySlot<JSTestObjPrototype, JSObject>(exec, &JSTestObjPrototypeTable, this, propertyName, slot); 25021939df44de1705786c545cd1bf519d47250322dBen Murdoch} 25121939df44de1705786c545cd1bf519d47250322dBen Murdoch 25221939df44de1705786c545cd1bf519d47250322dBen Murdochbool JSTestObjPrototype::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor) 25321939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 254967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch return getStaticPropertyDescriptor<JSTestObjPrototype, JSObject>(exec, &JSTestObjPrototypeTable, this, propertyName, descriptor); 25521939df44de1705786c545cd1bf519d47250322dBen Murdoch} 25621939df44de1705786c545cd1bf519d47250322dBen Murdoch 25781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochconst ClassInfo JSTestObj::s_info = { "TestObj", &DOMObjectWithGlobalPointer::s_info, &JSTestObjTable, 0 }; 25821939df44de1705786c545cd1bf519d47250322dBen Murdoch 25921939df44de1705786c545cd1bf519d47250322dBen MurdochJSTestObj::JSTestObj(NonNullPassRefPtr<Structure> structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestObj> impl) 26021939df44de1705786c545cd1bf519d47250322dBen Murdoch : DOMObjectWithGlobalPointer(structure, globalObject) 26121939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_impl(impl) 26221939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 26381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch ASSERT(inherits(&s_info)); 26421939df44de1705786c545cd1bf519d47250322dBen Murdoch} 26521939df44de1705786c545cd1bf519d47250322dBen Murdoch 26621939df44de1705786c545cd1bf519d47250322dBen MurdochJSObject* JSTestObj::createPrototype(ExecState* exec, JSGlobalObject* globalObject) 26721939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 2682bde8e466a4451c7319e3a072d118917957d6554Steve Block return new (exec) JSTestObjPrototype(globalObject, JSTestObjPrototype::createStructure(globalObject->globalData(), globalObject->objectPrototype())); 26921939df44de1705786c545cd1bf519d47250322dBen Murdoch} 27021939df44de1705786c545cd1bf519d47250322dBen Murdoch 27121939df44de1705786c545cd1bf519d47250322dBen Murdochbool JSTestObj::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot) 27221939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 27321939df44de1705786c545cd1bf519d47250322dBen Murdoch return getStaticValueSlot<JSTestObj, Base>(exec, &JSTestObjTable, this, propertyName, slot); 27421939df44de1705786c545cd1bf519d47250322dBen Murdoch} 27521939df44de1705786c545cd1bf519d47250322dBen Murdoch 27621939df44de1705786c545cd1bf519d47250322dBen Murdochbool JSTestObj::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor) 27721939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 27821939df44de1705786c545cd1bf519d47250322dBen Murdoch return getStaticValueDescriptor<JSTestObj, Base>(exec, &JSTestObjTable, this, propertyName, descriptor); 27921939df44de1705786c545cd1bf519d47250322dBen Murdoch} 28021939df44de1705786c545cd1bf519d47250322dBen Murdoch 28121939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue jsTestObjReadOnlyIntAttr(ExecState* exec, JSValue slotBase, const Identifier&) 28221939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 28321939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 28421939df44de1705786c545cd1bf519d47250322dBen Murdoch UNUSED_PARAM(exec); 28521939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 2864576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->readOnlyIntAttr()); 28721939df44de1705786c545cd1bf519d47250322dBen Murdoch return result; 28821939df44de1705786c545cd1bf519d47250322dBen Murdoch} 28921939df44de1705786c545cd1bf519d47250322dBen Murdoch 29021939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue jsTestObjReadOnlyStringAttr(ExecState* exec, JSValue slotBase, const Identifier&) 29121939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 29221939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 29321939df44de1705786c545cd1bf519d47250322dBen Murdoch UNUSED_PARAM(exec); 29421939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 29521939df44de1705786c545cd1bf519d47250322dBen Murdoch JSValue result = jsString(exec, imp->readOnlyStringAttr()); 29621939df44de1705786c545cd1bf519d47250322dBen Murdoch return result; 29721939df44de1705786c545cd1bf519d47250322dBen Murdoch} 29821939df44de1705786c545cd1bf519d47250322dBen Murdoch 29921939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue jsTestObjReadOnlyTestObjAttr(ExecState* exec, JSValue slotBase, const Identifier&) 30021939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 30121939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 30221939df44de1705786c545cd1bf519d47250322dBen Murdoch UNUSED_PARAM(exec); 30321939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 30421939df44de1705786c545cd1bf519d47250322dBen Murdoch JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->readOnlyTestObjAttr())); 30521939df44de1705786c545cd1bf519d47250322dBen Murdoch return result; 30621939df44de1705786c545cd1bf519d47250322dBen Murdoch} 30721939df44de1705786c545cd1bf519d47250322dBen Murdoch 3084576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangJSValue jsTestObjShortAttr(ExecState* exec, JSValue slotBase, const Identifier&) 3094576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang{ 3104576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 3114576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang UNUSED_PARAM(exec); 3124576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 3134576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->shortAttr()); 3144576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return result; 3154576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang} 3164576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 3174576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangJSValue jsTestObjUnsignedShortAttr(ExecState* exec, JSValue slotBase, const Identifier&) 3184576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang{ 3194576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 3204576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang UNUSED_PARAM(exec); 3214576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 3224576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->unsignedShortAttr()); 3234576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return result; 3244576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang} 3254576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 32621939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue jsTestObjIntAttr(ExecState* exec, JSValue slotBase, const Identifier&) 32721939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 32821939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 32921939df44de1705786c545cd1bf519d47250322dBen Murdoch UNUSED_PARAM(exec); 33021939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 3314576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->intAttr()); 33221939df44de1705786c545cd1bf519d47250322dBen Murdoch return result; 33321939df44de1705786c545cd1bf519d47250322dBen Murdoch} 33421939df44de1705786c545cd1bf519d47250322dBen Murdoch 33521939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue jsTestObjLongLongAttr(ExecState* exec, JSValue slotBase, const Identifier&) 33621939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 33721939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 33821939df44de1705786c545cd1bf519d47250322dBen Murdoch UNUSED_PARAM(exec); 33921939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 3404576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->longLongAttr()); 34121939df44de1705786c545cd1bf519d47250322dBen Murdoch return result; 34221939df44de1705786c545cd1bf519d47250322dBen Murdoch} 34321939df44de1705786c545cd1bf519d47250322dBen Murdoch 34421939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue jsTestObjUnsignedLongLongAttr(ExecState* exec, JSValue slotBase, const Identifier&) 34521939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 34621939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 34721939df44de1705786c545cd1bf519d47250322dBen Murdoch UNUSED_PARAM(exec); 34821939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 3494576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->unsignedLongLongAttr()); 35021939df44de1705786c545cd1bf519d47250322dBen Murdoch return result; 35121939df44de1705786c545cd1bf519d47250322dBen Murdoch} 35221939df44de1705786c545cd1bf519d47250322dBen Murdoch 35321939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue jsTestObjStringAttr(ExecState* exec, JSValue slotBase, const Identifier&) 35421939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 35521939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 35621939df44de1705786c545cd1bf519d47250322dBen Murdoch UNUSED_PARAM(exec); 35721939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 35821939df44de1705786c545cd1bf519d47250322dBen Murdoch JSValue result = jsString(exec, imp->stringAttr()); 35921939df44de1705786c545cd1bf519d47250322dBen Murdoch return result; 36021939df44de1705786c545cd1bf519d47250322dBen Murdoch} 36121939df44de1705786c545cd1bf519d47250322dBen Murdoch 36221939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue jsTestObjTestObjAttr(ExecState* exec, JSValue slotBase, const Identifier&) 36321939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 36421939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 36521939df44de1705786c545cd1bf519d47250322dBen Murdoch UNUSED_PARAM(exec); 36621939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 36721939df44de1705786c545cd1bf519d47250322dBen Murdoch JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->testObjAttr())); 36821939df44de1705786c545cd1bf519d47250322dBen Murdoch return result; 36921939df44de1705786c545cd1bf519d47250322dBen Murdoch} 37021939df44de1705786c545cd1bf519d47250322dBen Murdoch 371db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve BlockJSValue jsTestObjXMLObjAttr(ExecState* exec, JSValue slotBase, const Identifier&) 372db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block{ 373db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 374db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block UNUSED_PARAM(exec); 375db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 376db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->xmlObjAttr())); 377db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block return result; 378db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block} 379db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 380db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve BlockJSValue jsTestObjCreate(ExecState* exec, JSValue slotBase, const Identifier&) 381db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block{ 382db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 383db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block UNUSED_PARAM(exec); 384db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 385db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block JSValue result = jsBoolean(imp->isCreate()); 386db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block return result; 387db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block} 388db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 38906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjReflectedStringAttr(ExecState* exec, JSValue slotBase, const Identifier&) 39006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 39106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 39206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen UNUSED_PARAM(exec); 39306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 39406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSValue result = jsString(exec, imp->getAttribute(WebCore::HTMLNames::reflectedstringattrAttr)); 39506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return result; 39606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 39706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 39806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjReflectedIntegralAttr(ExecState* exec, JSValue slotBase, const Identifier&) 39906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 40006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 40106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen UNUSED_PARAM(exec); 40206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 4034576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->getIntegralAttribute(WebCore::HTMLNames::reflectedintegralattrAttr)); 40406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return result; 40506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 40606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 407f05b935882198ccf7d81675736e3aeb089c5113aBen MurdochJSValue jsTestObjReflectedUnsignedIntegralAttr(ExecState* exec, JSValue slotBase, const Identifier&) 408f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch{ 409f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 410f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch UNUSED_PARAM(exec); 411f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 412f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch JSValue result = jsNumber(std::max(0, imp->getIntegralAttribute(WebCore::HTMLNames::reflectedunsignedintegralattrAttr))); 413f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch return result; 414f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch} 415f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 41606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjReflectedBooleanAttr(ExecState* exec, JSValue slotBase, const Identifier&) 41706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 41806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 41906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen UNUSED_PARAM(exec); 42006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 42106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSValue result = jsBoolean(imp->hasAttribute(WebCore::HTMLNames::reflectedbooleanattrAttr)); 42206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return result; 42306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 42406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 42506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjReflectedURLAttr(ExecState* exec, JSValue slotBase, const Identifier&) 42606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 42706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 42806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen UNUSED_PARAM(exec); 42906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 43006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSValue result = jsString(exec, imp->getURLAttribute(WebCore::HTMLNames::reflectedurlattrAttr)); 43106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return result; 43206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 43306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 434e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeJSValue jsTestObjReflectedNonEmptyURLAttr(ExecState* exec, JSValue slotBase, const Identifier&) 435e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{ 436e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 437e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke UNUSED_PARAM(exec); 438e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 439e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke JSValue result = jsString(exec, imp->getNonEmptyURLAttribute(WebCore::HTMLNames::reflectednonemptyurlattrAttr)); 440e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke return result; 441e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke} 442e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 44306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjReflectedStringAttr(ExecState* exec, JSValue slotBase, const Identifier&) 44406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 44506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 44606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen UNUSED_PARAM(exec); 44706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 44806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSValue result = jsString(exec, imp->getAttribute(WebCore::HTMLNames::customContentStringAttrAttr)); 44906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return result; 45006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 45106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 45206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjReflectedCustomIntegralAttr(ExecState* exec, JSValue slotBase, const Identifier&) 45306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 45406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 45506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen UNUSED_PARAM(exec); 45606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 4574576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->getIntegralAttribute(WebCore::HTMLNames::customContentIntegralAttrAttr)); 45806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return result; 45906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 46006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 46106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjReflectedCustomBooleanAttr(ExecState* exec, JSValue slotBase, const Identifier&) 46206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 46306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 46406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen UNUSED_PARAM(exec); 46506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 46606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSValue result = jsBoolean(imp->hasAttribute(WebCore::HTMLNames::customContentBooleanAttrAttr)); 46706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return result; 46806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 46906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 470e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeJSValue jsTestObjReflectedCustomURLAttr(ExecState* exec, JSValue slotBase, const Identifier&) 47121939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 47221939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 47321939df44de1705786c545cd1bf519d47250322dBen Murdoch UNUSED_PARAM(exec); 47421939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 47506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSValue result = jsString(exec, imp->getURLAttribute(WebCore::HTMLNames::customContentURLAttrAttr)); 47606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return result; 47706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 47806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 479e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeJSValue jsTestObjReflectedCustomNonEmptyURLAttr(ExecState* exec, JSValue slotBase, const Identifier&) 480e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{ 481e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 482e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke UNUSED_PARAM(exec); 483e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 484e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke JSValue result = jsString(exec, imp->getNonEmptyURLAttribute(WebCore::HTMLNames::customContentNonEmptyURLAttrAttr)); 485e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke return result; 486e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke} 487e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 48806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjAttrWithGetterException(ExecState* exec, JSValue slotBase, const Identifier&) 48906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 49006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 49106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen ExceptionCode ec = 0; 49206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 4934576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSC::JSValue result = jsNumber(imp->attrWithGetterException(ec)); 49406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen setDOMException(exec, ec); 49521939df44de1705786c545cd1bf519d47250322dBen Murdoch return result; 49621939df44de1705786c545cd1bf519d47250322dBen Murdoch} 49721939df44de1705786c545cd1bf519d47250322dBen Murdoch 49821939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue jsTestObjAttrWithSetterException(ExecState* exec, JSValue slotBase, const Identifier&) 49921939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 50021939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 50106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen UNUSED_PARAM(exec); 50206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 5034576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->attrWithSetterException()); 50406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return result; 50506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 50606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 50706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjStringAttrWithGetterException(ExecState* exec, JSValue slotBase, const Identifier&) 50806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 50906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 5106c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen ExceptionCode ec = 0; 51121939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 51206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSC::JSValue result = jsString(exec, imp->stringAttrWithGetterException(ec)); 5136c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen setDOMException(exec, ec); 51421939df44de1705786c545cd1bf519d47250322dBen Murdoch return result; 51521939df44de1705786c545cd1bf519d47250322dBen Murdoch} 51621939df44de1705786c545cd1bf519d47250322dBen Murdoch 51706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjStringAttrWithSetterException(ExecState* exec, JSValue slotBase, const Identifier&) 51821939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 51921939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 52021939df44de1705786c545cd1bf519d47250322dBen Murdoch UNUSED_PARAM(exec); 52121939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 52206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSValue result = jsString(exec, imp->stringAttrWithSetterException()); 52321939df44de1705786c545cd1bf519d47250322dBen Murdoch return result; 52421939df44de1705786c545cd1bf519d47250322dBen Murdoch} 52521939df44de1705786c545cd1bf519d47250322dBen Murdoch 52621939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue jsTestObjCustomAttr(ExecState* exec, JSValue slotBase, const Identifier&) 52721939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 52821939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 52921939df44de1705786c545cd1bf519d47250322dBen Murdoch return castedThis->customAttr(exec); 53021939df44de1705786c545cd1bf519d47250322dBen Murdoch} 53121939df44de1705786c545cd1bf519d47250322dBen Murdoch 53221939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue jsTestObjScriptStringAttr(ExecState* exec, JSValue slotBase, const Identifier&) 53321939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 53421939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 53521939df44de1705786c545cd1bf519d47250322dBen Murdoch UNUSED_PARAM(exec); 53621939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 53721939df44de1705786c545cd1bf519d47250322dBen Murdoch JSValue result = jsOwnedStringOrNull(exec, imp->scriptStringAttr()); 53821939df44de1705786c545cd1bf519d47250322dBen Murdoch return result; 53921939df44de1705786c545cd1bf519d47250322dBen Murdoch} 54021939df44de1705786c545cd1bf519d47250322dBen Murdoch 54106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if ENABLE(Condition1) 54206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjConditionalAttr1(ExecState* exec, JSValue slotBase, const Identifier&) 54306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 54406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 54506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen UNUSED_PARAM(exec); 54606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 5474576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->conditionalAttr1()); 54806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return result; 54906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 55006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif 55106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 55206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if ENABLE(Condition1) && ENABLE(Condition2) 55306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjConditionalAttr2(ExecState* exec, JSValue slotBase, const Identifier&) 55406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 55506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 55606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen UNUSED_PARAM(exec); 55706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 5584576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->conditionalAttr2()); 55906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return result; 56006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 56106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif 56206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 56306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if ENABLE(Condition1) || ENABLE(Condition2) 56406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenJSValue jsTestObjConditionalAttr3(ExecState* exec, JSValue slotBase, const Identifier&) 56506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 56606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 56706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen UNUSED_PARAM(exec); 56806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 5694576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->conditionalAttr3()); 57006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return result; 57106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 57206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif 57306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 574545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochJSValue jsTestObjDescription(ExecState* exec, JSValue slotBase, const Identifier&) 575545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch{ 576545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 577545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch UNUSED_PARAM(exec); 578545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 5794576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->description()); 580545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return result; 581545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch} 582545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 583545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochJSValue jsTestObjId(ExecState* exec, JSValue slotBase, const Identifier&) 584545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch{ 585545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 586545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch UNUSED_PARAM(exec); 587545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 5884576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue result = jsNumber(imp->id()); 589545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return result; 590545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch} 591545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 592545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochJSValue jsTestObjHash(ExecState* exec, JSValue slotBase, const Identifier&) 593545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch{ 594545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase)); 595545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch UNUSED_PARAM(exec); 596545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 597545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch JSValue result = jsString(exec, imp->hash()); 598545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return result; 599545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch} 600545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 60121939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue jsTestObjConstructor(ExecState* exec, JSValue slotBase, const Identifier&) 60221939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 60321939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* domObject = static_cast<JSTestObj*>(asObject(slotBase)); 60421939df44de1705786c545cd1bf519d47250322dBen Murdoch return JSTestObj::getConstructor(exec, domObject->globalObject()); 60521939df44de1705786c545cd1bf519d47250322dBen Murdoch} 606ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 60721939df44de1705786c545cd1bf519d47250322dBen Murdochvoid JSTestObj::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot) 60821939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 60921939df44de1705786c545cd1bf519d47250322dBen Murdoch lookupPut<JSTestObj, Base>(exec, propertyName, value, &JSTestObjTable, this, slot); 61021939df44de1705786c545cd1bf519d47250322dBen Murdoch} 61121939df44de1705786c545cd1bf519d47250322dBen Murdoch 6124576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangvoid setJSTestObjShortAttr(ExecState* exec, JSObject* thisObject, JSValue value) 6134576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang{ 6144576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 6154576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 6164576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang imp->setShortAttr(value.toInt32(exec)); 6174576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang} 6184576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 6194576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangvoid setJSTestObjUnsignedShortAttr(ExecState* exec, JSObject* thisObject, JSValue value) 6204576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang{ 6214576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 6224576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 6234576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang imp->setUnsignedShortAttr(value.toUInt32(exec)); 6244576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang} 6254576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 62621939df44de1705786c545cd1bf519d47250322dBen Murdochvoid setJSTestObjIntAttr(ExecState* exec, JSObject* thisObject, JSValue value) 62721939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 62821939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 62921939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 63021939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->setIntAttr(value.toInt32(exec)); 63121939df44de1705786c545cd1bf519d47250322dBen Murdoch} 63221939df44de1705786c545cd1bf519d47250322dBen Murdoch 63321939df44de1705786c545cd1bf519d47250322dBen Murdochvoid setJSTestObjLongLongAttr(ExecState* exec, JSObject* thisObject, JSValue value) 63421939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 63521939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 63621939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 63721939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->setLongLongAttr(static_cast<long long>(value.toInteger(exec))); 63821939df44de1705786c545cd1bf519d47250322dBen Murdoch} 63921939df44de1705786c545cd1bf519d47250322dBen Murdoch 64021939df44de1705786c545cd1bf519d47250322dBen Murdochvoid setJSTestObjUnsignedLongLongAttr(ExecState* exec, JSObject* thisObject, JSValue value) 64121939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 64221939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 64321939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 64421939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->setUnsignedLongLongAttr(static_cast<unsigned long long>(value.toInteger(exec))); 64521939df44de1705786c545cd1bf519d47250322dBen Murdoch} 64621939df44de1705786c545cd1bf519d47250322dBen Murdoch 64721939df44de1705786c545cd1bf519d47250322dBen Murdochvoid setJSTestObjStringAttr(ExecState* exec, JSObject* thisObject, JSValue value) 64821939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 64921939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 65021939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 65121939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->setStringAttr(ustringToString(value.toString(exec))); 65221939df44de1705786c545cd1bf519d47250322dBen Murdoch} 65321939df44de1705786c545cd1bf519d47250322dBen Murdoch 65421939df44de1705786c545cd1bf519d47250322dBen Murdochvoid setJSTestObjTestObjAttr(ExecState* exec, JSObject* thisObject, JSValue value) 65521939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 65621939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 65721939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 65821939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->setTestObjAttr(toTestObj(value)); 65921939df44de1705786c545cd1bf519d47250322dBen Murdoch} 66021939df44de1705786c545cd1bf519d47250322dBen Murdoch 661db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockvoid setJSTestObjXMLObjAttr(ExecState* exec, JSObject* thisObject, JSValue value) 662db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block{ 663db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 664db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 665db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block imp->setXMLObjAttr(toTestObj(value)); 666db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block} 667db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 668db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockvoid setJSTestObjCreate(ExecState* exec, JSObject* thisObject, JSValue value) 669db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block{ 670db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 671db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 672db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block imp->setCreate(value.toBoolean(exec)); 673db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block} 674db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 67506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjReflectedStringAttr(ExecState* exec, JSObject* thisObject, JSValue value) 67621939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 67721939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 67821939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 67906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setAttribute(WebCore::HTMLNames::reflectedstringattrAttr, valueToStringWithNullCheck(exec, value)); 68006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 68106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 68206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjReflectedIntegralAttr(ExecState* exec, JSObject* thisObject, JSValue value) 68306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 68406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 68506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 68606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setIntegralAttribute(WebCore::HTMLNames::reflectedintegralattrAttr, value.toInt32(exec)); 68706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 68806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 689f05b935882198ccf7d81675736e3aeb089c5113aBen Murdochvoid setJSTestObjReflectedUnsignedIntegralAttr(ExecState* exec, JSObject* thisObject, JSValue value) 690f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch{ 691f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 692f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 693f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch imp->setUnsignedIntegralAttribute(WebCore::HTMLNames::reflectedunsignedintegralattrAttr, value.toUInt32(exec)); 694f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch} 695f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 69606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjReflectedBooleanAttr(ExecState* exec, JSObject* thisObject, JSValue value) 69706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 69806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 69906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 70006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setBooleanAttribute(WebCore::HTMLNames::reflectedbooleanattrAttr, value.toBoolean(exec)); 70106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 70206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 70306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjReflectedURLAttr(ExecState* exec, JSObject* thisObject, JSValue value) 70406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 70506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 70606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 70706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setAttribute(WebCore::HTMLNames::reflectedurlattrAttr, valueToStringWithNullCheck(exec, value)); 70806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 70906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 710e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid setJSTestObjReflectedNonEmptyURLAttr(ExecState* exec, JSObject* thisObject, JSValue value) 711e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{ 712e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 713e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 714e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke imp->setAttribute(WebCore::HTMLNames::reflectednonemptyurlattrAttr, valueToStringWithNullCheck(exec, value)); 715e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke} 716e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 71706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjReflectedStringAttr(ExecState* exec, JSObject* thisObject, JSValue value) 71806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 71906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 72006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 72106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setAttribute(WebCore::HTMLNames::customContentStringAttrAttr, valueToStringWithNullCheck(exec, value)); 72206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 72306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 72406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjReflectedCustomIntegralAttr(ExecState* exec, JSObject* thisObject, JSValue value) 72506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 72606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 72706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 72806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setIntegralAttribute(WebCore::HTMLNames::customContentIntegralAttrAttr, value.toInt32(exec)); 72906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 73006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 73106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjReflectedCustomBooleanAttr(ExecState* exec, JSObject* thisObject, JSValue value) 73206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 73306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 73406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 73506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setBooleanAttribute(WebCore::HTMLNames::customContentBooleanAttrAttr, value.toBoolean(exec)); 73606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 73706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 738e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid setJSTestObjReflectedCustomURLAttr(ExecState* exec, JSObject* thisObject, JSValue value) 73906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 74006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 74106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 74206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setAttribute(WebCore::HTMLNames::customContentURLAttrAttr, valueToStringWithNullCheck(exec, value)); 74306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 74406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 745e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid setJSTestObjReflectedCustomNonEmptyURLAttr(ExecState* exec, JSObject* thisObject, JSValue value) 746e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{ 747e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 748e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 749e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke imp->setAttribute(WebCore::HTMLNames::customContentNonEmptyURLAttrAttr, valueToStringWithNullCheck(exec, value)); 750e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke} 751e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 75206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjAttrWithGetterException(ExecState* exec, JSObject* thisObject, JSValue value) 75306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 75406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 75506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 75606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen ExceptionCode ec = 0; 75706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setAttrWithGetterException(value.toInt32(exec), ec); 75806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen setDOMException(exec, ec); 75921939df44de1705786c545cd1bf519d47250322dBen Murdoch} 76021939df44de1705786c545cd1bf519d47250322dBen Murdoch 76121939df44de1705786c545cd1bf519d47250322dBen Murdochvoid setJSTestObjAttrWithSetterException(ExecState* exec, JSObject* thisObject, JSValue value) 76221939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 76321939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 76421939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 7656c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen ExceptionCode ec = 0; 7666c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen imp->setAttrWithSetterException(value.toInt32(exec), ec); 7676c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen setDOMException(exec, ec); 76821939df44de1705786c545cd1bf519d47250322dBen Murdoch} 76921939df44de1705786c545cd1bf519d47250322dBen Murdoch 77006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjStringAttrWithGetterException(ExecState* exec, JSObject* thisObject, JSValue value) 77121939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 77221939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 77321939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 7746c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen ExceptionCode ec = 0; 77506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setStringAttrWithGetterException(ustringToString(value.toString(exec)), ec); 77606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen setDOMException(exec, ec); 77706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 77806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 77906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjStringAttrWithSetterException(ExecState* exec, JSObject* thisObject, JSValue value) 78006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 78106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 78206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 78306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen ExceptionCode ec = 0; 78406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setStringAttrWithSetterException(ustringToString(value.toString(exec)), ec); 7856c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen setDOMException(exec, ec); 78621939df44de1705786c545cd1bf519d47250322dBen Murdoch} 78721939df44de1705786c545cd1bf519d47250322dBen Murdoch 78821939df44de1705786c545cd1bf519d47250322dBen Murdochvoid setJSTestObjCustomAttr(ExecState* exec, JSObject* thisObject, JSValue value) 78921939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 79021939df44de1705786c545cd1bf519d47250322dBen Murdoch static_cast<JSTestObj*>(thisObject)->setCustomAttr(exec, value); 79121939df44de1705786c545cd1bf519d47250322dBen Murdoch} 79221939df44de1705786c545cd1bf519d47250322dBen Murdoch 79306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if ENABLE(Condition1) 79406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjConditionalAttr1(ExecState* exec, JSObject* thisObject, JSValue value) 79506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 79606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 79706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 79806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setConditionalAttr1(value.toInt32(exec)); 79906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 80006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif 80106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 80206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if ENABLE(Condition1) && ENABLE(Condition2) 80306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjConditionalAttr2(ExecState* exec, JSObject* thisObject, JSValue value) 80406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 80506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 80606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 80706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setConditionalAttr2(value.toInt32(exec)); 80806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 80906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif 81006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 81106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if ENABLE(Condition1) || ENABLE(Condition2) 81206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid setJSTestObjConditionalAttr3(ExecState* exec, JSObject* thisObject, JSValue value) 81306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 81406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 81506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 81606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen imp->setConditionalAttr3(value.toInt32(exec)); 81706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 81806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif 81906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 820545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdochvoid setJSTestObjId(ExecState* exec, JSObject* thisObject, JSValue value) 821545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch{ 822545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject); 823545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 824545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch imp->setId(value.toInt32(exec)); 825545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch} 826545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 82721939df44de1705786c545cd1bf519d47250322dBen MurdochJSValue JSTestObj::getConstructor(ExecState* exec, JSGlobalObject* globalObject) 82821939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 82921939df44de1705786c545cd1bf519d47250322dBen Murdoch return getDOMConstructor<JSTestObjConstructor>(exec, static_cast<JSDOMGlobalObject*>(globalObject)); 83021939df44de1705786c545cd1bf519d47250322dBen Murdoch} 83121939df44de1705786c545cd1bf519d47250322dBen Murdoch 832545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionVoidMethod(ExecState* exec) 83321939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 8345af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 83521939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 836545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 83721939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 83821939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 83921939df44de1705786c545cd1bf519d47250322dBen Murdoch 84021939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->voidMethod(); 841545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 84221939df44de1705786c545cd1bf519d47250322dBen Murdoch} 84321939df44de1705786c545cd1bf519d47250322dBen Murdoch 844545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionVoidMethodWithArgs(ExecState* exec) 84521939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 8465af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 84721939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 848545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 84921939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 85021939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 85181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int intArg(exec->argument(0).toInt32(exec)); 852dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 853dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 85481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch const String& strArg(ustringToString(exec->argument(1).toString(exec))); 855dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 856dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 85781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch TestObj* objArg(toTestObj(exec->argument(2))); 858dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 859dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 86021939df44de1705786c545cd1bf519d47250322dBen Murdoch 86121939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->voidMethodWithArgs(intArg, strArg, objArg); 862545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 86321939df44de1705786c545cd1bf519d47250322dBen Murdoch} 86421939df44de1705786c545cd1bf519d47250322dBen Murdoch 865545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionIntMethod(ExecState* exec) 86621939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 8675af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 86821939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 869545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 87021939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 87121939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 87221939df44de1705786c545cd1bf519d47250322dBen Murdoch 87321939df44de1705786c545cd1bf519d47250322dBen Murdoch 8744576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSC::JSValue result = jsNumber(imp->intMethod()); 875545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(result); 87621939df44de1705786c545cd1bf519d47250322dBen Murdoch} 87721939df44de1705786c545cd1bf519d47250322dBen Murdoch 878545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionIntMethodWithArgs(ExecState* exec) 87921939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 8805af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 88121939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 882545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 88321939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 88421939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 88581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int intArg(exec->argument(0).toInt32(exec)); 886dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 887dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 88881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch const String& strArg(ustringToString(exec->argument(1).toString(exec))); 889dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 890dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 89181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch TestObj* objArg(toTestObj(exec->argument(2))); 892dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 893dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 89421939df44de1705786c545cd1bf519d47250322dBen Murdoch 89521939df44de1705786c545cd1bf519d47250322dBen Murdoch 8964576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSC::JSValue result = jsNumber(imp->intMethodWithArgs(intArg, strArg, objArg)); 897545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(result); 89821939df44de1705786c545cd1bf519d47250322dBen Murdoch} 89921939df44de1705786c545cd1bf519d47250322dBen Murdoch 900545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionObjMethod(ExecState* exec) 90121939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 9025af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 90321939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 904545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 90521939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 90621939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 90721939df44de1705786c545cd1bf519d47250322dBen Murdoch 90821939df44de1705786c545cd1bf519d47250322dBen Murdoch 90921939df44de1705786c545cd1bf519d47250322dBen Murdoch JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->objMethod())); 910545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(result); 91121939df44de1705786c545cd1bf519d47250322dBen Murdoch} 91221939df44de1705786c545cd1bf519d47250322dBen Murdoch 913545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionObjMethodWithArgs(ExecState* exec) 91421939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 9155af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 91621939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 917545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 91821939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 91921939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 92081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int intArg(exec->argument(0).toInt32(exec)); 921dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 922dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 92381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch const String& strArg(ustringToString(exec->argument(1).toString(exec))); 924dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 925dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 92681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch TestObj* objArg(toTestObj(exec->argument(2))); 927dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 928dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 92921939df44de1705786c545cd1bf519d47250322dBen Murdoch 93021939df44de1705786c545cd1bf519d47250322dBen Murdoch 93121939df44de1705786c545cd1bf519d47250322dBen Murdoch JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->objMethodWithArgs(intArg, strArg, objArg))); 932545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(result); 93321939df44de1705786c545cd1bf519d47250322dBen Murdoch} 93421939df44de1705786c545cd1bf519d47250322dBen Murdoch 935545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodThatRequiresAllArgs(ExecState* exec) 9366c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen{ 9375af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 9386c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen if (!thisValue.inherits(&JSTestObj::s_info)) 939545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 9406c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 9416c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 9425af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke if (exec->argumentCount() < 2) 943545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 94481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch const String& strArg(ustringToString(exec->argument(0).toString(exec))); 945dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 946dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 94781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch TestObj* objArg(toTestObj(exec->argument(1))); 948dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 949dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 9506c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 9516c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 9526c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->methodThatRequiresAllArgs(strArg, objArg))); 953545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(result); 9546c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen} 9556c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 956545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows(ExecState* exec) 9576c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen{ 9585af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 9596c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen if (!thisValue.inherits(&JSTestObj::s_info)) 960545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 9616c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 9626c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 9635af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke if (exec->argumentCount() < 2) 964545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMError(exec, createSyntaxError(exec, "Not enough arguments")); 9656c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen ExceptionCode ec = 0; 96681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch const String& strArg(ustringToString(exec->argument(0).toString(exec))); 967dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 968dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 96981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch TestObj* objArg(toTestObj(exec->argument(1))); 970dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 971dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 9726c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 9736c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 9746c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->methodThatRequiresAllArgsAndThrows(strArg, objArg, ec))); 9756c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen setDOMException(exec, ec); 976545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(result); 9776c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen} 9786c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 979545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionSerializedValue(ExecState* exec) 98021939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 9815af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 98221939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 983545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 98421939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 98521939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 98681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch RefPtr<SerializedScriptValue> serializedArg(SerializedScriptValue::create(exec, exec->argument(0))); 987dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 988dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 98921939df44de1705786c545cd1bf519d47250322dBen Murdoch 99021939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->serializedValue(serializedArg); 991545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 99221939df44de1705786c545cd1bf519d47250322dBen Murdoch} 99321939df44de1705786c545cd1bf519d47250322dBen Murdoch 994ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve BlockEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionIdbKey(ExecState* exec) 995ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block{ 996ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block JSValue thisValue = exec->hostThisValue(); 997ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block if (!thisValue.inherits(&JSTestObj::s_info)) 998ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block return throwVMTypeError(exec); 999ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 1000ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 100181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch RefPtr<IDBKey> key(createIDBKeyFromValue(exec, exec->argument(0))); 1002dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1003dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 1004ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 1005ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block imp->idbKey(key); 1006ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block return JSValue::encode(jsUndefined()); 1007ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block} 1008ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 10094576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOptionsObject(ExecState* exec) 10104576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang{ 10114576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSValue thisValue = exec->hostThisValue(); 10124576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang if (!thisValue.inherits(&JSTestObj::s_info)) 10134576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return throwVMTypeError(exec); 10144576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 10154576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 101681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch OptionsObject* oo(toOptionsObject(exec->argument(0))); 10174576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang if (exec->hadException()) 10184576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return JSValue::encode(jsUndefined()); 10194576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 10204576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang int argsCount = exec->argumentCount(); 10214576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang if (argsCount <= 1) { 10224576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang imp->optionsObject(oo); 10234576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return JSValue::encode(jsUndefined()); 10244576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang } 10254576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 102681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch OptionsObject* ooo(toOptionsObject(exec->argument(1))); 10274576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang if (exec->hadException()) 10284576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return JSValue::encode(jsUndefined()); 10294576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 10304576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang imp->optionsObject(oo, ooo); 10314576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return JSValue::encode(jsUndefined()); 10324576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang} 10334576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 1034545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithException(ExecState* exec) 103521939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 10365af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 103721939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1038545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 103921939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 104021939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 104121939df44de1705786c545cd1bf519d47250322dBen Murdoch ExceptionCode ec = 0; 104221939df44de1705786c545cd1bf519d47250322dBen Murdoch 104321939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->methodWithException(ec); 104421939df44de1705786c545cd1bf519d47250322dBen Murdoch setDOMException(exec, ec); 1045545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 104621939df44de1705786c545cd1bf519d47250322dBen Murdoch} 104721939df44de1705786c545cd1bf519d47250322dBen Murdoch 1048545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionCustomMethod(ExecState* exec) 104921939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 10505af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 105121939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1052545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 105321939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 1054545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(castedThis->customMethod(exec)); 105521939df44de1705786c545cd1bf519d47250322dBen Murdoch} 105621939df44de1705786c545cd1bf519d47250322dBen Murdoch 1057545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionCustomMethodWithArgs(ExecState* exec) 105821939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 10595af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 106021939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1061545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 106221939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 1063545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(castedThis->customMethodWithArgs(exec)); 106421939df44de1705786c545cd1bf519d47250322dBen Murdoch} 106521939df44de1705786c545cd1bf519d47250322dBen Murdoch 1066545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionCustomArgsAndException(ExecState* exec) 106721939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 10685af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 106921939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1070545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 107121939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 107221939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 107321939df44de1705786c545cd1bf519d47250322dBen Murdoch ExceptionCode ec = 0; 1074f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch RefPtr<ScriptArguments> scriptArguments(createScriptArguments(exec, 1)); 107528040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu size_t maxStackSize = imp->shouldCaptureFullStackTrace() ? ScriptCallStack::maxCallStackSizeToCapture : 1; 1076f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch RefPtr<ScriptCallStack> callStack(createScriptCallStack(exec, maxStackSize)); 107781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch log* intArg(tolog(exec->argument(0))); 1078dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1079dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 108021939df44de1705786c545cd1bf519d47250322dBen Murdoch 1081f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch imp->customArgsAndException(intArg, scriptArguments, callStack, ec); 108221939df44de1705786c545cd1bf519d47250322dBen Murdoch setDOMException(exec, ec); 1083545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 108421939df44de1705786c545cd1bf519d47250322dBen Murdoch} 108521939df44de1705786c545cd1bf519d47250322dBen Murdoch 1086545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionAddEventListener(ExecState* exec) 108721939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 10885af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 108921939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1090545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 109121939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 109221939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 10935af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue listener = exec->argument(1); 109421939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!listener.isObject()) 1095545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 10965af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke imp->addEventListener(ustringToAtomicString(exec->argument(0).toString(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)), exec->argument(2).toBoolean(exec)); 1097545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 109821939df44de1705786c545cd1bf519d47250322dBen Murdoch} 109921939df44de1705786c545cd1bf519d47250322dBen Murdoch 1100545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionRemoveEventListener(ExecState* exec) 110121939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 11025af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 110321939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1104545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 110521939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 110621939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 11075af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue listener = exec->argument(1); 110821939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!listener.isObject()) 1109545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 11105af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke imp->removeEventListener(ustringToAtomicString(exec->argument(0).toString(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)).get(), exec->argument(2).toBoolean(exec)); 1111545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 111221939df44de1705786c545cd1bf519d47250322dBen Murdoch} 111321939df44de1705786c545cd1bf519d47250322dBen Murdoch 1114545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrame(ExecState* exec) 111521939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 11165af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 111721939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1118545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 111921939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 112021939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 112121939df44de1705786c545cd1bf519d47250322dBen Murdoch Frame* dynamicFrame = toDynamicFrame(exec); 112221939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!dynamicFrame) 1123545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 112421939df44de1705786c545cd1bf519d47250322dBen Murdoch 112521939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->withDynamicFrame(dynamicFrame); 1126545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 112721939df44de1705786c545cd1bf519d47250322dBen Murdoch} 112821939df44de1705786c545cd1bf519d47250322dBen Murdoch 1129545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrameAndArg(ExecState* exec) 113021939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 11315af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 113221939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1133545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 113421939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 113521939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 113621939df44de1705786c545cd1bf519d47250322dBen Murdoch Frame* dynamicFrame = toDynamicFrame(exec); 113721939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!dynamicFrame) 1138545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 113981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int intArg(exec->argument(0).toInt32(exec)); 1140dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1141dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 114221939df44de1705786c545cd1bf519d47250322dBen Murdoch 114321939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->withDynamicFrameAndArg(dynamicFrame, intArg); 1144545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 114521939df44de1705786c545cd1bf519d47250322dBen Murdoch} 114621939df44de1705786c545cd1bf519d47250322dBen Murdoch 1147545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg(ExecState* exec) 114821939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 11495af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 115021939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1151545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 115221939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 115321939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 115421939df44de1705786c545cd1bf519d47250322dBen Murdoch Frame* dynamicFrame = toDynamicFrame(exec); 115521939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!dynamicFrame) 1156545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 115781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int intArg(exec->argument(0).toInt32(exec)); 1158dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1159dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 116021939df44de1705786c545cd1bf519d47250322dBen Murdoch 11615af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke int argsCount = exec->argumentCount(); 1162dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (argsCount <= 1) { 116321939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->withDynamicFrameAndOptionalArg(dynamicFrame, intArg); 1164545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 116521939df44de1705786c545cd1bf519d47250322dBen Murdoch } 116621939df44de1705786c545cd1bf519d47250322dBen Murdoch 116781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int optionalArg(exec->argument(1).toInt32(exec)); 1168dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1169dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 117021939df44de1705786c545cd1bf519d47250322dBen Murdoch 117121939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->withDynamicFrameAndOptionalArg(dynamicFrame, intArg, optionalArg); 1172545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 117321939df44de1705786c545cd1bf519d47250322dBen Murdoch} 117421939df44de1705786c545cd1bf519d47250322dBen Murdoch 1175545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture(ExecState* exec) 117621939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 11775af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 117821939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1179545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 118021939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 118121939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 118221939df44de1705786c545cd1bf519d47250322dBen Murdoch Frame* dynamicFrame = toDynamicFrame(exec); 118321939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!dynamicFrame) 1184545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 118581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int intArg(exec->argument(0).toInt32(exec)); 1186dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1187dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 118821939df44de1705786c545cd1bf519d47250322dBen Murdoch 1189f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick imp->withDynamicFrameAndUserGesture(dynamicFrame, intArg, processingUserGesture()); 1190545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 119121939df44de1705786c545cd1bf519d47250322dBen Murdoch} 119221939df44de1705786c545cd1bf519d47250322dBen Murdoch 1193545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD(ExecState* exec) 119421939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 11955af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 119621939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1197545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 119821939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 119921939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 120021939df44de1705786c545cd1bf519d47250322dBen Murdoch Frame* dynamicFrame = toDynamicFrame(exec); 120121939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!dynamicFrame) 1202545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 120381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int intArg(exec->argument(0).toInt32(exec)); 1204dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1205dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 120621939df44de1705786c545cd1bf519d47250322dBen Murdoch 12075af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke int argsCount = exec->argumentCount(); 1208dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (argsCount <= 1) { 120921939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->withDynamicFrameAndUserGestureASAD(dynamicFrame, intArg); 1210545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 121121939df44de1705786c545cd1bf519d47250322dBen Murdoch } 121221939df44de1705786c545cd1bf519d47250322dBen Murdoch 121381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int optionalArg(exec->argument(1).toInt32(exec)); 1214dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1215dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 121621939df44de1705786c545cd1bf519d47250322dBen Murdoch 1217f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick imp->withDynamicFrameAndUserGestureASAD(dynamicFrame, intArg, optionalArg, processingUserGesture()); 1218545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 121921939df44de1705786c545cd1bf519d47250322dBen Murdoch} 122021939df44de1705786c545cd1bf519d47250322dBen Murdoch 1221545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithScriptStateVoid(ExecState* exec) 122221939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 12235af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 122421939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1225545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 122621939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 122721939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 122821939df44de1705786c545cd1bf519d47250322dBen Murdoch 122921939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->withScriptStateVoid(exec); 1230545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 123121939df44de1705786c545cd1bf519d47250322dBen Murdoch} 123221939df44de1705786c545cd1bf519d47250322dBen Murdoch 1233545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithScriptStateObj(ExecState* exec) 123421939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 12355af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 123621939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1237545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 123821939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 123921939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 124021939df44de1705786c545cd1bf519d47250322dBen Murdoch 124121939df44de1705786c545cd1bf519d47250322dBen Murdoch 124221939df44de1705786c545cd1bf519d47250322dBen Murdoch JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->withScriptStateObj(exec))); 124321939df44de1705786c545cd1bf519d47250322dBen Murdoch if (exec->hadException()) 1244545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 1245545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(result); 124621939df44de1705786c545cd1bf519d47250322dBen Murdoch} 124721939df44de1705786c545cd1bf519d47250322dBen Murdoch 1248545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithScriptStateVoidException(ExecState* exec) 124921939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 12505af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 125121939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1252545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 125321939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 125421939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 125521939df44de1705786c545cd1bf519d47250322dBen Murdoch ExceptionCode ec = 0; 125621939df44de1705786c545cd1bf519d47250322dBen Murdoch 125721939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->withScriptStateVoidException(exec, ec); 125821939df44de1705786c545cd1bf519d47250322dBen Murdoch setDOMException(exec, ec); 1259545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 126021939df44de1705786c545cd1bf519d47250322dBen Murdoch} 126121939df44de1705786c545cd1bf519d47250322dBen Murdoch 1262545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithScriptStateObjException(ExecState* exec) 126321939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 12645af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 126521939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1266545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 126721939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 126821939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 126921939df44de1705786c545cd1bf519d47250322dBen Murdoch ExceptionCode ec = 0; 127021939df44de1705786c545cd1bf519d47250322dBen Murdoch 127121939df44de1705786c545cd1bf519d47250322dBen Murdoch 127221939df44de1705786c545cd1bf519d47250322dBen Murdoch JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->withScriptStateObjException(exec, ec))); 127321939df44de1705786c545cd1bf519d47250322dBen Murdoch setDOMException(exec, ec); 127421939df44de1705786c545cd1bf519d47250322dBen Murdoch if (exec->hadException()) 1275545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 1276545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(result); 1277545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch} 1278545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 1279545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithScriptExecutionContext(ExecState* exec) 1280545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch{ 1281545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch JSValue thisValue = exec->hostThisValue(); 1282545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1283545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 1284545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 1285545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 1286545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch ScriptExecutionContext* scriptContext = static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject())->scriptExecutionContext(); 1287545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch if (!scriptContext) 1288545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 1289545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 1290545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch imp->withScriptExecutionContext(scriptContext); 1291545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 129221939df44de1705786c545cd1bf519d47250322dBen Murdoch} 129321939df44de1705786c545cd1bf519d47250322dBen Murdoch 1294545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithOptionalArg(ExecState* exec) 129521939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 12965af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 129721939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1298545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 129921939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 130021939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 130121939df44de1705786c545cd1bf519d47250322dBen Murdoch 13025af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke int argsCount = exec->argumentCount(); 1303dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (argsCount <= 0) { 130421939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->methodWithOptionalArg(); 1305545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 130621939df44de1705786c545cd1bf519d47250322dBen Murdoch } 130721939df44de1705786c545cd1bf519d47250322dBen Murdoch 130881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int opt(exec->argument(0).toInt32(exec)); 1309dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1310dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 131121939df44de1705786c545cd1bf519d47250322dBen Murdoch 131221939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->methodWithOptionalArg(opt); 1313545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 131421939df44de1705786c545cd1bf519d47250322dBen Murdoch} 131521939df44de1705786c545cd1bf519d47250322dBen Murdoch 1316545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg(ExecState* exec) 131721939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 13185af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 131921939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1320545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 132121939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 132221939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 132381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int nonOpt(exec->argument(0).toInt32(exec)); 1324dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1325dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 132621939df44de1705786c545cd1bf519d47250322dBen Murdoch 13275af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke int argsCount = exec->argumentCount(); 1328dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (argsCount <= 1) { 132921939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->methodWithNonOptionalArgAndOptionalArg(nonOpt); 1330545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 133121939df44de1705786c545cd1bf519d47250322dBen Murdoch } 133221939df44de1705786c545cd1bf519d47250322dBen Murdoch 133381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int opt(exec->argument(1).toInt32(exec)); 1334dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1335dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 133621939df44de1705786c545cd1bf519d47250322dBen Murdoch 133721939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->methodWithNonOptionalArgAndOptionalArg(nonOpt, opt); 1338545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 133921939df44de1705786c545cd1bf519d47250322dBen Murdoch} 134021939df44de1705786c545cd1bf519d47250322dBen Murdoch 1341545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs(ExecState* exec) 134221939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 13435af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 134421939df44de1705786c545cd1bf519d47250322dBen Murdoch if (!thisValue.inherits(&JSTestObj::s_info)) 1345545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 134621939df44de1705786c545cd1bf519d47250322dBen Murdoch JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 134721939df44de1705786c545cd1bf519d47250322dBen Murdoch TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 134881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int nonOpt(exec->argument(0).toInt32(exec)); 1349dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1350dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 135121939df44de1705786c545cd1bf519d47250322dBen Murdoch 13525af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke int argsCount = exec->argumentCount(); 1353dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (argsCount <= 1) { 135421939df44de1705786c545cd1bf519d47250322dBen Murdoch imp->methodWithNonOptionalArgAndTwoOptionalArgs(nonOpt); 1355545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 135621939df44de1705786c545cd1bf519d47250322dBen Murdoch } 135721939df44de1705786c545cd1bf519d47250322dBen Murdoch 135881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int opt1(exec->argument(1).toInt32(exec)); 1359dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1360dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 136181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int opt2(exec->argument(2).toInt32(exec)); 1362dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1363dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 13646c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 13656c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen imp->methodWithNonOptionalArgAndTwoOptionalArgs(nonOpt, opt1, opt2); 1366545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 13676c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen} 13686c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 1369db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve BlockEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithCallbackArg(ExecState* exec) 1370db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block{ 1371db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block JSValue thisValue = exec->hostThisValue(); 1372db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!thisValue.inherits(&JSTestObj::s_info)) 1373db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block return throwVMTypeError(exec); 1374db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 1375db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 1376db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (exec->argumentCount() <= 0 || !exec->argument(0).isObject()) { 1377db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block setDOMException(exec, TYPE_MISMATCH_ERR); 1378dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 1379db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 1380db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block RefPtr<TestCallback> callback = JSTestCallback::create(asObject(exec->argument(0)), castedThis->globalObject()); 1381db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 1382db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block imp->methodWithCallbackArg(callback); 1383db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block return JSValue::encode(jsUndefined()); 1384db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block} 1385db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 1386db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve BlockEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg(ExecState* exec) 1387db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block{ 1388db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block JSValue thisValue = exec->hostThisValue(); 1389db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!thisValue.inherits(&JSTestObj::s_info)) 1390db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block return throwVMTypeError(exec); 1391db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 1392db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 139381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int nonCallback(exec->argument(0).toInt32(exec)); 1394dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1395dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 1396db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (exec->argumentCount() <= 1 || !exec->argument(1).isObject()) { 1397db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block setDOMException(exec, TYPE_MISMATCH_ERR); 1398dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 1399db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 1400db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block RefPtr<TestCallback> callback = JSTestCallback::create(asObject(exec->argument(1)), castedThis->globalObject()); 1401db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 1402db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block imp->methodWithNonCallbackArgAndCallbackArg(nonCallback, callback); 1403db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block return JSValue::encode(jsUndefined()); 1404db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block} 1405db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 1406db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve BlockEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg(ExecState* exec) 1407db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block{ 1408db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block JSValue thisValue = exec->hostThisValue(); 1409db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!thisValue.inherits(&JSTestObj::s_info)) 1410db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block return throwVMTypeError(exec); 1411db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 1412db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 1413dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch RefPtr<TestCallback> callback; 1414dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->argumentCount() > 0 && !exec->argument(0).isNull() && !exec->argument(0).isUndefined()) { 1415dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (!exec->argument(0).isObject()) { 1416dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch setDOMException(exec, TYPE_MISMATCH_ERR); 1417dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 1418dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch } 1419dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch callback = JSTestCallback::create(asObject(exec->argument(0)), castedThis->globalObject()); 1420db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 1421db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 1422db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block imp->methodWithCallbackAndOptionalArg(callback); 1423db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block return JSValue::encode(jsUndefined()); 1424db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block} 1425db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 142606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenstatic EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod1(ExecState* exec) 14276c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen{ 14285af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 14296c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen if (!thisValue.inherits(&JSTestObj::s_info)) 1430545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 14316c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 14326c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 143381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch TestObj* objArg(toTestObj(exec->argument(0))); 1434dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1435dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 143681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch const String& strArg(ustringToString(exec->argument(1).toString(exec))); 1437dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1438dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 14396c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 14406c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen imp->overloadedMethod(objArg, strArg); 1441545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 14426c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen} 14436c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 144406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenstatic EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod2(ExecState* exec) 14456c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen{ 14465af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 14476c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen if (!thisValue.inherits(&JSTestObj::s_info)) 1448545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 14496c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 14506c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 145181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch TestObj* objArg(toTestObj(exec->argument(0))); 1452dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1453dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 14546c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 14555af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke int argsCount = exec->argumentCount(); 1456dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (argsCount <= 1) { 14576c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen imp->overloadedMethod(objArg); 1458545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 145921939df44de1705786c545cd1bf519d47250322dBen Murdoch } 146021939df44de1705786c545cd1bf519d47250322dBen Murdoch 146181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int intArg(exec->argument(1).toInt32(exec)); 1462dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1463dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 146421939df44de1705786c545cd1bf519d47250322dBen Murdoch 14656c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen imp->overloadedMethod(objArg, intArg); 1466545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 146721939df44de1705786c545cd1bf519d47250322dBen Murdoch} 146821939df44de1705786c545cd1bf519d47250322dBen Murdoch 146906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenstatic EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod3(ExecState* exec) 14706c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen{ 14715af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 14726c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen if (!thisValue.inherits(&JSTestObj::s_info)) 1473545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 14746c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 14756c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 147681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch const String& strArg(ustringToString(exec->argument(0).toString(exec))); 1477dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1478dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 14796c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 14806c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen imp->overloadedMethod(strArg); 1481545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 14826c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen} 14836c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 148406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenstatic EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod4(ExecState* exec) 14856c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen{ 14865af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke JSValue thisValue = exec->hostThisValue(); 14876c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen if (!thisValue.inherits(&JSTestObj::s_info)) 1488545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return throwVMTypeError(exec); 14896c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 14906c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 149181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int intArg(exec->argument(0).toInt32(exec)); 1492dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (exec->hadException()) 1493dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return JSValue::encode(jsUndefined()); 14946c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 14956c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen imp->overloadedMethod(intArg); 1496545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return JSValue::encode(jsUndefined()); 14976c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen} 14986c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 14995abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickstatic EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod5(ExecState* exec) 15005abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick{ 15015abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick JSValue thisValue = exec->hostThisValue(); 15025abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick if (!thisValue.inherits(&JSTestObj::s_info)) 15035abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick return throwVMTypeError(exec); 15045abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 15055abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 15065abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick if (exec->argumentCount() <= 0 || !exec->argument(0).isObject()) { 15075abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick setDOMException(exec, TYPE_MISMATCH_ERR); 15085abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick return JSValue::encode(jsUndefined()); 15095abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick } 15105abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick RefPtr<TestCallback> callback = JSTestCallback::create(asObject(exec->argument(0)), castedThis->globalObject()); 15115abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 15125abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick imp->overloadedMethod(callback); 15135abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick return JSValue::encode(jsUndefined()); 15145abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick} 15155abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 1516545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod(ExecState* exec) 15176c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen{ 1518f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick if ((exec->argumentCount() == 2 && (exec->argument(0).isNull() || (exec->argument(0).isObject() && asObject(exec->argument(0))->inherits(&JSTestObj::s_info))) && (exec->argument(1).isNull() || exec->argument(1).isUndefined() || exec->argument(1).isString() || exec->argument(1).isObject()))) 15195af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke return jsTestObjPrototypeFunctionOverloadedMethod1(exec); 1520f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick if ((exec->argumentCount() == 1 && (exec->argument(0).isNull() || (exec->argument(0).isObject() && asObject(exec->argument(0))->inherits(&JSTestObj::s_info)))) || (exec->argumentCount() == 2 && (exec->argument(0).isNull() || (exec->argument(0).isObject() && asObject(exec->argument(0))->inherits(&JSTestObj::s_info))))) 15215af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke return jsTestObjPrototypeFunctionOverloadedMethod2(exec); 15225af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke if ((exec->argumentCount() == 1 && (exec->argument(0).isNull() || exec->argument(0).isUndefined() || exec->argument(0).isString() || exec->argument(0).isObject()))) 15235af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke return jsTestObjPrototypeFunctionOverloadedMethod3(exec); 15245af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke if (exec->argumentCount() == 1) 15255af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke return jsTestObjPrototypeFunctionOverloadedMethod4(exec); 15265abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick if ((exec->argumentCount() == 1 && (exec->argument(0).isNull() || exec->argument(0).isObject()))) 15275abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick return jsTestObjPrototypeFunctionOverloadedMethod5(exec); 152806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return throwVMTypeError(exec); 15296c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen} 15306c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 15315abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain MerrickEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionClassMethod(ExecState* exec) 15325abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick{ 15335abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick JSValue thisValue = exec->hostThisValue(); 15345abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick if (!thisValue.inherits(&JSTestObj::s_info)) 15355abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick return throwVMTypeError(exec); 15365abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 15375abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 15385abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 15395abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick imp->classMethod(); 15405abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick return JSValue::encode(jsUndefined()); 15415abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick} 15425abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 15435abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain MerrickEncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionClassMethodWithOptional(ExecState* exec) 15445abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick{ 15455abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick JSValue thisValue = exec->hostThisValue(); 15465abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick if (!thisValue.inherits(&JSTestObj::s_info)) 15475abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick return throwVMTypeError(exec); 15485abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue)); 15495abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick TestObj* imp = static_cast<TestObj*>(castedThis->impl()); 15505abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 15515abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick int argsCount = exec->argumentCount(); 15525abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick if (argsCount <= 0) { 15535abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 15544576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSC::JSValue result = jsNumber(imp->classMethodWithOptional()); 15555abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick return JSValue::encode(result); 15565abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick } 15575abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 155881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch int arg(exec->argument(0).toInt32(exec)); 15595abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick if (exec->hadException()) 15605abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick return JSValue::encode(jsUndefined()); 15615abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 15625abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 15634576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang JSC::JSValue result = jsNumber(imp->classMethodWithOptional(arg)); 15645abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick return JSValue::encode(result); 15655abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick} 15665abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 1567967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch// Constant getters 1568967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 1569967717af5423377c967781471ee106e2bb4e11c8Ben MurdochJSValue jsTestObjCONST_VALUE_0(ExecState* exec, JSValue, const Identifier&) 1570967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch{ 15714576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang UNUSED_PARAM(exec); 15724576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return jsNumber(static_cast<int>(0)); 1573967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch} 1574967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 1575967717af5423377c967781471ee106e2bb4e11c8Ben MurdochJSValue jsTestObjCONST_VALUE_1(ExecState* exec, JSValue, const Identifier&) 1576967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch{ 15774576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang UNUSED_PARAM(exec); 15784576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return jsNumber(static_cast<int>(1)); 1579967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch} 1580967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 1581967717af5423377c967781471ee106e2bb4e11c8Ben MurdochJSValue jsTestObjCONST_VALUE_2(ExecState* exec, JSValue, const Identifier&) 1582967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch{ 15834576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang UNUSED_PARAM(exec); 15844576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return jsNumber(static_cast<int>(2)); 1585967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch} 1586967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 1587967717af5423377c967781471ee106e2bb4e11c8Ben MurdochJSValue jsTestObjCONST_VALUE_4(ExecState* exec, JSValue, const Identifier&) 1588967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch{ 15894576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang UNUSED_PARAM(exec); 15904576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return jsNumber(static_cast<int>(4)); 1591967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch} 1592967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 1593967717af5423377c967781471ee106e2bb4e11c8Ben MurdochJSValue jsTestObjCONST_VALUE_8(ExecState* exec, JSValue, const Identifier&) 1594967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch{ 15954576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang UNUSED_PARAM(exec); 15964576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return jsNumber(static_cast<int>(8)); 1597967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch} 1598967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 15990617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenJSValue jsTestObjCONST_VALUE_9(ExecState* exec, JSValue, const Identifier&) 16000617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen{ 16014576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang UNUSED_PARAM(exec); 16024576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return jsNumber(static_cast<int>(-1)); 16030617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen} 16040617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen 16050617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenJSValue jsTestObjCONST_VALUE_10(ExecState* exec, JSValue, const Identifier&) 16060617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen{ 16070617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen return jsStringOrNull(exec, String("my constant string")); 16080617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen} 16090617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen 16100617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenJSValue jsTestObjCONST_VALUE_11(ExecState* exec, JSValue, const Identifier&) 16110617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen{ 16124576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang UNUSED_PARAM(exec); 16134576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return jsNumber(static_cast<int>(0xffffffff)); 16140617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen} 16150617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen 16160617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenJSValue jsTestObjCONST_VALUE_12(ExecState* exec, JSValue, const Identifier&) 16170617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen{ 16184576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang UNUSED_PARAM(exec); 16194576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return jsNumber(static_cast<int>(0x01)); 16200617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen} 16210617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen 16220617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenJSValue jsTestObjCONST_VALUE_13(ExecState* exec, JSValue, const Identifier&) 16230617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen{ 16244576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang UNUSED_PARAM(exec); 16254576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return jsNumber(static_cast<int>(0X20)); 16260617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen} 16270617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen 16280617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenJSValue jsTestObjCONST_VALUE_14(ExecState* exec, JSValue, const Identifier&) 16290617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen{ 16304576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang UNUSED_PARAM(exec); 16314576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang return jsNumber(static_cast<int>(0x1abc)); 16320617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen} 16330617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen 163421939df44de1705786c545cd1bf519d47250322dBen MurdochJSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, TestObj* object) 163521939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 163621939df44de1705786c545cd1bf519d47250322dBen Murdoch return getDOMObjectWrapper<JSTestObj>(exec, globalObject, object); 163721939df44de1705786c545cd1bf519d47250322dBen Murdoch} 163821939df44de1705786c545cd1bf519d47250322dBen MurdochTestObj* toTestObj(JSC::JSValue value) 163921939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 164021939df44de1705786c545cd1bf519d47250322dBen Murdoch return value.inherits(&JSTestObj::s_info) ? static_cast<JSTestObj*>(asObject(value))->impl() : 0; 164121939df44de1705786c545cd1bf519d47250322dBen Murdoch} 164221939df44de1705786c545cd1bf519d47250322dBen Murdoch 164321939df44de1705786c545cd1bf519d47250322dBen Murdoch} 1644