Changeset 196276 in webkit
- Timestamp:
- Feb 8, 2016 3:14:47 PM (8 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r196274 r196276 1 2016-02-08 Yusuke Suzuki <utatane.tea@gmail.com> 2 3 [JSC] Introduce @isObject bytecode intrinsic and use it instead of JS implemented one 4 https://bugs.webkit.org/show_bug.cgi?id=153976 5 6 Reviewed by Darin Adler. 7 8 Use bytecode op_is_object directly. 9 10 * builtins/GlobalObject.js: 11 (isObject): Deleted. 12 * bytecode/BytecodeIntrinsicRegistry.h: 13 * bytecompiler/NodesCodegen.cpp: 14 (JSC::BytecodeIntrinsicNode::emit_intrinsic_toString): 15 (JSC::BytecodeIntrinsicNode::emit_intrinsic_isObject): 16 * runtime/JSGlobalObject.cpp: 17 (JSC::JSGlobalObject::init): Deleted. 18 1 19 2016-02-08 Yusuke Suzuki <utatane.tea@gmail.com> 2 20 -
trunk/Source/JavaScriptCore/builtins/GlobalObject.js
r196022 r196276 52 52 } 53 53 54 function isObject(object)55 {56 "use strict";57 58 return (object !== null && typeof object === "object") || typeof object === "function";59 }60 61 54 function isDictionary(object) 62 55 { -
trunk/Source/JavaScriptCore/bytecode/BytecodeIntrinsicRegistry.h
r196022 r196276 41 41 #define JSC_COMMON_BYTECODE_INTRINSIC_FUNCTIONS_EACH_NAME(macro) \ 42 42 macro(assert) \ 43 macro(isObject) \ 43 44 macro(putByValDirect) \ 44 45 macro(toString) -
trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r196022 r196276 849 849 850 850 return generator.moveToDestinationIfNeeded(dst, generator.emitToString(generator.tempDestination(dst), src.get())); 851 } 852 853 RegisterID* BytecodeIntrinsicNode::emit_intrinsic_isObject(BytecodeGenerator& generator, RegisterID* dst) 854 { 855 ArgumentListNode* node = m_args->m_listNode; 856 RefPtr<RegisterID> src = generator.emitNode(node); 857 ASSERT(!node->m_next); 858 859 return generator.moveToDestinationIfNeeded(dst, generator.emitIsObject(generator.tempDestination(dst), src.get())); 851 860 } 852 861 -
trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
r196165 r196276 562 562 GlobalPropertyInfo(vm.propertyNames->builtinNames().toLengthPrivateName(), privateFuncToLength, DontEnum | DontDelete | ReadOnly), 563 563 GlobalPropertyInfo(vm.propertyNames->builtinNames().toIntegerPrivateName(), privateFuncToInteger, DontEnum | DontDelete | ReadOnly), 564 GlobalPropertyInfo(vm.propertyNames->builtinNames().isObjectPrivateName(), JSFunction::createBuiltinFunction(vm, globalObjectIsObjectCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),565 564 GlobalPropertyInfo(vm.propertyNames->builtinNames().isDictionaryPrivateName(), JSFunction::createBuiltinFunction(vm, globalObjectIsDictionaryCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly), 566 565 GlobalPropertyInfo(vm.propertyNames->builtinNames().isPromisePrivateName(), JSFunction::createBuiltinFunction(vm, promiseOperationsIsPromiseCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
Note: See TracChangeset
for help on using the changeset viewer.