Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (206789 => 206790)
--- trunk/Source/_javascript_Core/ChangeLog 2016-10-04 22:41:01 UTC (rev 206789)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-10-04 22:51:38 UTC (rev 206790)
@@ -1,5 +1,21 @@
2016-10-04 Yusuke Suzuki <utatane....@gmail.com>
+ REGRESSION (r206778): Release JSC test ChakraCore.yaml/ChakraCore/test/Error/validate_line_column.js.default failing
+ https://bugs.webkit.org/show_bug.cgi?id=162937
+
+ Reviewed by Saam Barati.
+
+ We dropped _expression_ info accidentally at r206777.
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitCallDefineProperty):
+ * bytecompiler/BytecodeGenerator.h:
+ * bytecompiler/NodesCodegen.cpp:
+ (JSC::PropertyListNode::emitPutConstantProperty):
+ (JSC::ClassExprNode::emitBytecode):
+
+2016-10-04 Yusuke Suzuki <utatane....@gmail.com>
+
[DOMJIT] Introduce DOMJIT::GetterSetter to tell JIT information
https://bugs.webkit.org/show_bug.cgi?id=162916
Modified: trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp (206789 => 206790)
--- trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp 2016-10-04 22:41:01 UTC (rev 206789)
+++ trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp 2016-10-04 22:51:38 UTC (rev 206790)
@@ -3278,7 +3278,7 @@
}
void BytecodeGenerator::emitCallDefineProperty(RegisterID* newObj, RegisterID* propertyNameRegister,
- RegisterID* valueRegister, RegisterID* getterRegister, RegisterID* setterRegister, unsigned options)
+ RegisterID* valueRegister, RegisterID* getterRegister, RegisterID* setterRegister, unsigned options, const JSTextPosition& position)
{
DefinePropertyAttributes attributes;
if (options & PropertyConfigurable)
@@ -3301,6 +3301,8 @@
ASSERT(!valueRegister || (!getterRegister && !setterRegister));
+ emitExpressionInfo(position, position, position);
+
if (attributes.hasGet() || attributes.hasSet()) {
RefPtr<RegisterID> throwTypeErrorFunction;
if (!attributes.hasGet() || !attributes.hasSet())
Modified: trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.h (206789 => 206790)
--- trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.h 2016-10-04 22:41:01 UTC (rev 206789)
+++ trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.h 2016-10-04 22:51:38 UTC (rev 206790)
@@ -588,7 +588,7 @@
PropertyEnumerable = 1 << 2,
};
void emitCallDefineProperty(RegisterID* newObj, RegisterID* propertyNameRegister,
- RegisterID* valueRegister, RegisterID* getterRegister, RegisterID* setterRegister, unsigned options);
+ RegisterID* valueRegister, RegisterID* getterRegister, RegisterID* setterRegister, unsigned options, const JSTextPosition&);
void emitEnumeration(ThrowableExpressionData* enumerationNode, ExpressionNode* subjectNode, const std::function<void(BytecodeGenerator&, RegisterID*)>& callBack, ForOfNode* = nullptr, RegisterID* forLoopSymbolTable = nullptr);
Modified: trunk/Source/_javascript_Core/bytecompiler/NodesCodegen.cpp (206789 => 206790)
--- trunk/Source/_javascript_Core/bytecompiler/NodesCodegen.cpp 2016-10-04 22:41:01 UTC (rev 206789)
+++ trunk/Source/_javascript_Core/bytecompiler/NodesCodegen.cpp 2016-10-04 22:51:38 UTC (rev 206790)
@@ -595,7 +595,7 @@
propertyNameRegister = generator.emitNode(node.m_expression);
generator.emitSetFunctionNameIfNeeded(node.m_assign, value.get(), propertyNameRegister.get());
- generator.emitCallDefineProperty(newObj, propertyNameRegister.get(), value.get(), nullptr, nullptr, BytecodeGenerator::PropertyConfigurable | BytecodeGenerator::PropertyWritable);
+ generator.emitCallDefineProperty(newObj, propertyNameRegister.get(), value.get(), nullptr, nullptr, BytecodeGenerator::PropertyConfigurable | BytecodeGenerator::PropertyWritable, m_position);
return;
}
if (const auto* identifier = node.name()) {
@@ -3611,10 +3611,10 @@
RefPtr<RegisterID> constructorNameRegister = generator.emitLoad(nullptr, propertyNames.constructor);
generator.emitCallDefineProperty(prototype.get(), constructorNameRegister.get(), constructor.get(), nullptr, nullptr,
- BytecodeGenerator::PropertyConfigurable | BytecodeGenerator::PropertyWritable);
+ BytecodeGenerator::PropertyConfigurable | BytecodeGenerator::PropertyWritable, m_position);
RefPtr<RegisterID> prototypeNameRegister = generator.emitLoad(nullptr, propertyNames.prototype);
- generator.emitCallDefineProperty(constructor.get(), prototypeNameRegister.get(), prototype.get(), nullptr, nullptr, 0);
+ generator.emitCallDefineProperty(constructor.get(), prototypeNameRegister.get(), prototype.get(), nullptr, nullptr, 0, m_position);
if (m_staticMethods)
generator.emitNode(constructor.get(), m_staticMethods);