Modified: trunk/Source/_javascript_Core/bytecompiler/NodesCodegen.cpp (213741 => 213742)
--- trunk/Source/_javascript_Core/bytecompiler/NodesCodegen.cpp 2017-03-11 01:13:46 UTC (rev 213741)
+++ trunk/Source/_javascript_Core/bytecompiler/NodesCodegen.cpp 2017-03-11 01:38:22 UTC (rev 213742)
@@ -1,7 +1,7 @@
/*
* Copyright (C) 1999-2002 Harri Porten (por...@kde.org)
* Copyright (C) 2001 Peter Kelly (p...@post.com)
-* Copyright (C) 2003-2009, 2012-2013, 2015-2016 Apple Inc. All rights reserved.
+* Copyright (C) 2003-2017 Apple Inc. All rights reserved.
* Copyright (C) 2007 Cameron Zwarich (cwzwar...@uwaterloo.ca)
* Copyright (C) 2007 Maks Orlovich
* Copyright (C) 2007 Eric Seidel <e...@webkit.org>
@@ -2716,9 +2716,9 @@
generator.emitExpressionInfo(divot(), divotStart(), divotEnd());
if (var.isReadOnly())
generator.emitReadOnlyExceptionIfNeeded(var);
- RegisterID* scope = generator.emitResolveScope(nullptr, var);
+ RefPtr<RegisterID> scope = generator.emitResolveScope(nullptr, var);
generator.emitExpressionInfo(divot(), divotStart(), divotEnd());
- generator.emitPutToScope(scope, var, propertyName, generator.isStrictMode() ? ThrowIfNotFound : DoNotThrowIfNotFound, InitializationMode::NotInitialization);
+ generator.emitPutToScope(scope.get(), var, propertyName, generator.isStrictMode() ? ThrowIfNotFound : DoNotThrowIfNotFound, InitializationMode::NotInitialization);
}
generator.emitProfileType(propertyName, var, m_lexpr->position(), JSTextPosition(-1, m_lexpr->position().offset + ident.length(), -1));
};
@@ -2962,9 +2962,9 @@
generator.emitExpressionInfo(divot(), divotStart(), divotEnd());
if (var.isReadOnly())
generator.emitReadOnlyExceptionIfNeeded(var);
- RegisterID* scope = generator.emitResolveScope(nullptr, var);
+ RefPtr<RegisterID> scope = generator.emitResolveScope(nullptr, var);
generator.emitExpressionInfo(divot(), divotStart(), divotEnd());
- generator.emitPutToScope(scope, var, value, generator.isStrictMode() ? ThrowIfNotFound : DoNotThrowIfNotFound, InitializationMode::NotInitialization);
+ generator.emitPutToScope(scope.get(), var, value, generator.isStrictMode() ? ThrowIfNotFound : DoNotThrowIfNotFound, InitializationMode::NotInitialization);
}
generator.emitProfileType(value, var, m_lexpr->position(), JSTextPosition(-1, m_lexpr->position().offset + ident.length(), -1));
} else if (m_lexpr->isDotAccessorNode()) {
@@ -4107,15 +4107,15 @@
}
if (generator.isStrictMode())
generator.emitExpressionInfo(divotEnd(), divotStart(), divotEnd());
- RegisterID* scope = generator.emitResolveScope(nullptr, var);
+ RefPtr<RegisterID> scope = generator.emitResolveScope(nullptr, var);
generator.emitExpressionInfo(divotEnd(), divotStart(), divotEnd());
if (m_bindingContext == AssignmentContext::AssignmentExpression)
- generator.emitTDZCheckIfNecessary(var, nullptr, scope);
+ generator.emitTDZCheckIfNecessary(var, nullptr, scope.get());
if (isReadOnly) {
generator.emitReadOnlyExceptionIfNeeded(var);
return;
}
- generator.emitPutToScope(scope, var, value, generator.isStrictMode() ? ThrowIfNotFound : DoNotThrowIfNotFound, initializationModeForAssignmentContext(m_bindingContext));
+ generator.emitPutToScope(scope.get(), var, value, generator.isStrictMode() ? ThrowIfNotFound : DoNotThrowIfNotFound, initializationModeForAssignmentContext(m_bindingContext));
generator.emitProfileType(value, var, divotStart(), divotEnd());
if (m_bindingContext == AssignmentContext::DeclarationStatement || m_bindingContext == AssignmentContext::ConstDeclarationStatement)
generator.liftTDZCheckIfPossible(var);