Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (198348 => 198349)
--- trunk/Source/_javascript_Core/ChangeLog 2016-03-17 20:13:18 UTC (rev 198348)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-03-17 20:38:56 UTC (rev 198349)
@@ -1,3 +1,21 @@
+2016-03-17 Mark Lam <[email protected]>
+
+ Make FunctionMode an enum class.
+ https://bugs.webkit.org/show_bug.cgi?id=155587
+
+ Reviewed by Saam Barati.
+
+ * bytecode/UnlinkedFunctionExecutable.cpp:
+ (JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
+ * parser/NodeConstructors.h:
+ (JSC::BaseFuncExprNode::BaseFuncExprNode):
+ (JSC::FuncExprNode::FuncExprNode):
+ (JSC::FuncDeclNode::FuncDeclNode):
+ (JSC::ArrowFuncExprNode::ArrowFuncExprNode):
+ (JSC::MethodDefinitionNode::MethodDefinitionNode):
+ * parser/ParserModes.h:
+ (JSC::functionNameIsInScope):
+
2016-03-17 Michael Saboff <[email protected]>
[ES6] Getters and Setters should be prefixed appropriately
Modified: trunk/Source/_javascript_Core/bytecode/UnlinkedFunctionExecutable.cpp (198348 => 198349)
--- trunk/Source/_javascript_Core/bytecode/UnlinkedFunctionExecutable.cpp 2016-03-17 20:13:18 UTC (rev 198348)
+++ trunk/Source/_javascript_Core/bytecode/UnlinkedFunctionExecutable.cpp 2016-03-17 20:38:56 UTC (rev 198349)
@@ -97,7 +97,7 @@
, m_isBuiltinFunction(kind == UnlinkedBuiltinFunction)
, m_constructAbility(static_cast<unsigned>(constructAbility))
, m_constructorKind(static_cast<unsigned>(node->constructorKind()))
- , m_functionMode(node->functionMode())
+ , m_functionMode(static_cast<unsigned>(node->functionMode()))
, m_superBinding(static_cast<unsigned>(node->superBinding()))
, m_derivedContextType(static_cast<unsigned>(derivedContextType))
, m_sourceParseMode(static_cast<unsigned>(node->parseMode()))
@@ -110,7 +110,7 @@
// Make sure these bitfields are adequately wide.
ASSERT(m_constructAbility == static_cast<unsigned>(constructAbility));
ASSERT(m_constructorKind == static_cast<unsigned>(node->constructorKind()));
- ASSERT(m_functionMode == node->functionMode());
+ ASSERT(m_functionMode == static_cast<unsigned>(node->functionMode()));
ASSERT(m_superBinding == static_cast<unsigned>(node->superBinding()));
ASSERT(m_derivedContextType == static_cast<unsigned>(derivedContextType));
ASSERT(m_sourceParseMode == static_cast<unsigned>(node->parseMode()));
Modified: trunk/Source/_javascript_Core/parser/NodeConstructors.h (198348 => 198349)
--- trunk/Source/_javascript_Core/parser/NodeConstructors.h 2016-03-17 20:13:18 UTC (rev 198348)
+++ trunk/Source/_javascript_Core/parser/NodeConstructors.h 2016-03-17 20:38:56 UTC (rev 198349)
@@ -898,7 +898,7 @@
}
inline FuncExprNode::FuncExprNode(const JSTokenLocation& location, const Identifier& ident, FunctionMetadataNode* metadata, const SourceCode& source)
- : BaseFuncExprNode(location, ident, metadata, source, FunctionExpression)
+ : BaseFuncExprNode(location, ident, metadata, source, FunctionMode::FunctionExpression)
{
}
@@ -911,16 +911,16 @@
: StatementNode(location)
, m_metadata(metadata)
{
- m_metadata->finishParsing(source, ident, FunctionDeclaration);
+ m_metadata->finishParsing(source, ident, FunctionMode::FunctionDeclaration);
}
inline ArrowFuncExprNode::ArrowFuncExprNode(const JSTokenLocation& location, const Identifier& ident, FunctionMetadataNode* metadata, const SourceCode& source)
- : BaseFuncExprNode(location, ident, metadata, source, FunctionExpression)
+ : BaseFuncExprNode(location, ident, metadata, source, FunctionMode::FunctionExpression)
{
}
inline MethodDefinitionNode::MethodDefinitionNode(const JSTokenLocation& location, const Identifier& ident, FunctionMetadataNode* metadata, const SourceCode& source)
- : FuncExprNode(location, ident, metadata, source, MethodDefinition)
+ : FuncExprNode(location, ident, metadata, source, FunctionMode::MethodDefinition)
{
}
Modified: trunk/Source/_javascript_Core/parser/Nodes.cpp (198348 => 198349)
--- trunk/Source/_javascript_Core/parser/Nodes.cpp 2016-03-17 20:13:18 UTC (rev 198348)
+++ trunk/Source/_javascript_Core/parser/Nodes.cpp 2016-03-17 20:38:56 UTC (rev 198349)
@@ -166,7 +166,7 @@
ASSERT(m_constructorKind == static_cast<unsigned>(constructorKind));
}
-void FunctionMetadataNode::finishParsing(const SourceCode& source, const Identifier& ident, enum FunctionMode functionMode)
+void FunctionMetadataNode::finishParsing(const SourceCode& source, const Identifier& ident, FunctionMode functionMode)
{
m_source = source;
m_ident = ident;
@@ -189,7 +189,7 @@
{
}
-void FunctionNode::finishParsing(const Identifier& ident, enum FunctionMode functionMode)
+void FunctionNode::finishParsing(const Identifier& ident, FunctionMode functionMode)
{
ASSERT(!source().isNull());
m_ident = ident;
Modified: trunk/Source/_javascript_Core/parser/ParserModes.h (198348 => 198349)
--- trunk/Source/_javascript_Core/parser/ParserModes.h 2016-03-17 20:13:18 UTC (rev 198348)
+++ trunk/Source/_javascript_Core/parser/ParserModes.h 2016-03-17 20:38:56 UTC (rev 198349)
@@ -42,7 +42,7 @@
enum ProfilerMode { ProfilerOff, ProfilerOn };
enum DebuggerMode { DebuggerOff, DebuggerOn };
-enum FunctionMode { FunctionExpression, FunctionDeclaration, MethodDefinition };
+enum class FunctionMode { FunctionExpression, FunctionDeclaration, MethodDefinition };
enum class SourceParseMode : uint8_t {
NormalFunctionMode,
@@ -125,7 +125,7 @@
if (name.isNull())
return false;
- if (functionMode != FunctionExpression)
+ if (functionMode != FunctionMode::FunctionExpression)
return false;
return true;