Changeset 165119 in webkit for trunk/Source/JavaScriptCore/jsc.cpp
- Timestamp:
- Mar 5, 2014, 12:26:58 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jsc.cpp
r165074 r165119 95 95 class Element; 96 96 class ElementHandleOwner; 97 class Masuqerader; 97 98 class Root; 98 99 … … 143 144 }; 144 145 146 class Masquerader : public JSNonFinalObject { 147 public: 148 Masquerader(VM& vm, Structure* structure) 149 : Base(vm, structure) 150 { 151 } 152 153 typedef JSNonFinalObject Base; 154 155 static Masquerader* create(VM& vm, JSGlobalObject* globalObject) 156 { 157 globalObject->masqueradesAsUndefinedWatchpoint()->fireAll(); 158 Structure* structure = createStructure(vm, globalObject, jsNull()); 159 Masquerader* result = new (NotNull, allocateCell<Masquerader>(vm.heap, sizeof(Masquerader))) Masquerader(vm, structure); 160 result->finishCreation(vm); 161 return result; 162 } 163 164 static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype) 165 { 166 return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info()); 167 } 168 169 DECLARE_INFO; 170 171 protected: 172 static const unsigned StructureFlags = JSC::MasqueradesAsUndefined | Base::StructureFlags; 173 }; 174 145 175 class Root : public JSDestructibleObject { 146 176 public: … … 190 220 191 221 const ClassInfo Element::s_info = { "Element", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(Element) }; 222 const ClassInfo Masquerader::s_info = { "Masquerader", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(Masquerader) }; 192 223 const ClassInfo Root::s_info = { "Root", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(Root) }; 193 224 … … 240 271 static EncodedJSValue JSC_HOST_CALL functionFalse(ExecState*); 241 272 static EncodedJSValue JSC_HOST_CALL functionEffectful42(ExecState*); 273 static EncodedJSValue JSC_HOST_CALL functionMakeMasquerader(ExecState*); 242 274 243 275 #if ENABLE(SAMPLING_FLAGS) … … 377 409 378 410 addFunction(vm, "effectful42", functionEffectful42, 0); 411 addFunction(vm, "makeMasquerader", functionMakeMasquerader, 0); 379 412 380 413 JSArray* array = constructEmptyArray(globalExec(), 0); … … 746 779 { 747 780 return JSValue::encode(jsNumber(42)); 781 } 782 783 EncodedJSValue JSC_HOST_CALL functionMakeMasquerader(ExecState* exec) 784 { 785 return JSValue::encode(Masquerader::create(exec->vm(), exec->lexicalGlobalObject())); 748 786 } 749 787
Note:
See TracChangeset
for help on using the changeset viewer.