Changeset 189561 in webkit
- Timestamp:
- Sep 9, 2015 5:27:32 PM (9 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r189556 r189561 1 2015-09-09 Commit Queue <commit-queue@webkit.org> 2 3 Unreviewed, rolling out r189522. 4 https://bugs.webkit.org/show_bug.cgi?id=149020 5 6 "Caused a ~4% Speedometer regression" (Requested by cdumez on 7 #webkit). 8 9 Reverted changeset: 10 11 "Function.prototype.bind: Bound functions must use the 12 [[Prototype]] of their target function instead of 13 Function.prototype" 14 https://bugs.webkit.org/show_bug.cgi?id=145605 15 http://trac.webkit.org/changeset/189522 16 1 17 2015-09-09 Geoffrey Garen <ggaren@apple.com> 2 18 -
trunk/Source/JavaScriptCore/runtime/JSBoundFunction.cpp
r189522 r189561 36 36 37 37 EncodedJSValue JSC_HOST_CALL boundFunctionCall(ExecState* exec) 38 { 38 { 39 39 JSBoundFunction* boundFunction = jsCast<JSBoundFunction*>(exec->callee()); 40 40 … … 81 81 bool canConstruct = constructType != ConstructTypeNone; 82 82 NativeExecutable* executable = vm.getHostFunction(boundFunctionCall, canConstruct ? boundFunctionConstruct : callHostFunctionAsConstructor); 83 JSValue targetPrototype = targetFunction->prototype(); 84 Structure* structure = JSBoundFunction::createStructure(vm, globalObject, targetPrototype); 85 JSBoundFunction* function = new (NotNull, allocateCell<JSBoundFunction>(vm.heap)) JSBoundFunction(vm, globalObject, structure, targetFunction, boundThis, boundArgs); 86 83 JSBoundFunction* function = new (NotNull, allocateCell<JSBoundFunction>(vm.heap)) JSBoundFunction(vm, globalObject, globalObject->boundFunctionStructure(), targetFunction, boundThis, boundArgs); 84 87 85 function->finishCreation(vm, executable, length, name); 88 86 return function; -
trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
r189525 r189561 272 272 m_functionStructure.set(vm, this, JSFunction::createStructure(vm, this, m_functionPrototype.get())); 273 273 m_arrowFunctionStructure.set(vm, this, JSArrowFunction::createStructure(vm, this, m_functionPrototype.get())); 274 m_boundFunctionStructure.set(vm, this, JSBoundFunction::createStructure(vm, this, m_functionPrototype.get())); 274 275 m_nativeStdFunctionStructure.set(vm, this, JSNativeStdFunction::createStructure(vm, this, m_functionPrototype.get())); 275 276 m_namedFunctionStructure.set(vm, this, Structure::addPropertyTransition(vm, m_functionStructure.get(), vm.propertyNames->name, DontDelete | ReadOnly | DontEnum, m_functionNameOffset)); … … 820 821 visitor.append(&thisObject->m_calleeStructure); 821 822 visitor.append(&thisObject->m_functionStructure); 823 visitor.append(&thisObject->m_boundFunctionStructure); 822 824 visitor.append(&thisObject->m_arrowFunctionStructure); 823 825 visitor.append(&thisObject->m_nativeStdFunctionStructure); -
trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h
r189522 r189561 256 256 WriteBarrier<Structure> m_calleeStructure; 257 257 WriteBarrier<Structure> m_functionStructure; 258 WriteBarrier<Structure> m_boundFunctionStructure; 258 259 WriteBarrier<Structure> m_arrowFunctionStructure; 259 260 WriteBarrier<Structure> m_nativeStdFunctionStructure; … … 490 491 Structure* calleeStructure() const { return m_calleeStructure.get(); } 491 492 Structure* functionStructure() const { return m_functionStructure.get(); } 493 Structure* boundFunctionStructure() const { return m_boundFunctionStructure.get(); } 492 494 Structure* arrowFunctionStructure() const { return m_arrowFunctionStructure.get(); } 493 495 Structure* nativeStdFunctionStructure() const { return m_nativeStdFunctionStructure.get(); } -
trunk/Source/JavaScriptCore/tests/es6.yaml
r189522 r189561 882 882 cmd: runES6 :fail 883 883 - path: es6/prototype_of_bound_functions_arrow_functions.js 884 cmd: runES6 : normal884 cmd: runES6 :fail 885 885 - path: es6/prototype_of_bound_functions_basic_functions.js 886 cmd: runES6 : normal886 cmd: runES6 :fail 887 887 - path: es6/prototype_of_bound_functions_classes.js 888 cmd: runES6 : normal888 cmd: runES6 :fail 889 889 - path: es6/prototype_of_bound_functions_generator_functions.js 890 890 cmd: runES6 :fail 891 891 - path: es6/prototype_of_bound_functions_subclasses.js 892 cmd: runES6 : normal892 cmd: runES6 :fail 893 893 - path: es6/Proxy_apply_handler.js 894 894 cmd: runES6 :fail
Note: See TracChangeset
for help on using the changeset viewer.