| Index: src/factory.cc
|
| diff --git a/src/factory.cc b/src/factory.cc
|
| index 4d2c6b4ceaa8bcddcf796e033e98e507319da528..568fba72d3ea9299683ca9eec56483894fc155da 100644
|
| --- a/src/factory.cc
|
| +++ b/src/factory.cc
|
| @@ -351,7 +351,12 @@ Handle<JSFunction> Factory::NewFunctionFromSharedFunctionInfo(
|
| Handle<Context> context,
|
| PretenureFlag pretenure) {
|
| Handle<JSFunction> result = BaseNewFunctionFromSharedFunctionInfo(
|
| - function_info, Top::function_map(), pretenure);
|
| + function_info,
|
| + function_info->strict_mode()
|
| + ? Top::function_map_strict()
|
| + : Top::function_map(),
|
| + pretenure);
|
| +
|
| result->set_context(*context);
|
| int number_of_literals = function_info->num_literals();
|
| Handle<FixedArray> literals =
|
| @@ -826,6 +831,24 @@ Handle<JSFunction> Factory::NewFunctionWithoutPrototype(Handle<String> name) {
|
| }
|
|
|
|
|
| +Handle<JSFunction> Factory::NewFunctionWithoutPrototypeStrictHelper(
|
| + Handle<String> name) {
|
| + Handle<SharedFunctionInfo> function_share = NewSharedFunctionInfo(name);
|
| + CALL_HEAP_FUNCTION(Heap::AllocateFunction(
|
| + *Top::function_without_prototype_map_strict(),
|
| + *function_share,
|
| + *the_hole_value()),
|
| + JSFunction);
|
| +}
|
| +
|
| +
|
| +Handle<JSFunction> Factory::NewFunctionWithoutPrototypeStrict(
|
| + Handle<String> name) {
|
| + Handle<JSFunction> fun = NewFunctionWithoutPrototypeStrictHelper(name);
|
| + fun->set_context(Top::context()->global_context());
|
| + return fun;
|
| +}
|
| +
|
| Handle<Object> Factory::ToObject(Handle<Object> object) {
|
| CALL_HEAP_FUNCTION(object->ToObject(), Object);
|
| }
|
|
|