OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 5936 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5947 i::FunctionLiteral* func = info.literal(); | 5947 i::FunctionLiteral* func = info.literal(); |
5948 i::Scope* module_scope = func->scope(); | 5948 i::Scope* module_scope = func->scope(); |
5949 i::Scope* outer_scope = module_scope->outer_scope(); | 5949 i::Scope* outer_scope = module_scope->outer_scope(); |
5950 CHECK(outer_scope->is_script_scope()); | 5950 CHECK(outer_scope->is_script_scope()); |
5951 CHECK_NULL(outer_scope->outer_scope()); | 5951 CHECK_NULL(outer_scope->outer_scope()); |
5952 CHECK(module_scope->is_module_scope()); | 5952 CHECK(module_scope->is_module_scope()); |
5953 i::ZoneList<i::Declaration*>* declarations = module_scope->declarations(); | 5953 i::ZoneList<i::Declaration*>* declarations = module_scope->declarations(); |
5954 | 5954 |
5955 CHECK(declarations->at(0)->proxy()->raw_name()->IsOneByteEqualTo("x")); | 5955 CHECK(declarations->at(0)->proxy()->raw_name()->IsOneByteEqualTo("x")); |
5956 CHECK(declarations->at(0)->proxy()->var()->mode() == i::LET); | 5956 CHECK(declarations->at(0)->proxy()->var()->mode() == i::LET); |
| 5957 CHECK(declarations->at(0)->proxy()->var()->binding_needs_init()); |
5957 CHECK(declarations->at(0)->proxy()->var()->location() == | 5958 CHECK(declarations->at(0)->proxy()->var()->location() == |
5958 i::VariableLocation::MODULE); | 5959 i::VariableLocation::MODULE); |
5959 | 5960 |
5960 CHECK(declarations->at(1)->proxy()->raw_name()->IsOneByteEqualTo("z")); | 5961 CHECK(declarations->at(1)->proxy()->raw_name()->IsOneByteEqualTo("z")); |
5961 CHECK(declarations->at(1)->proxy()->var()->mode() == i::CONST); | 5962 CHECK(declarations->at(1)->proxy()->var()->mode() == i::CONST); |
| 5963 CHECK(declarations->at(1)->proxy()->var()->binding_needs_init()); |
5962 CHECK(declarations->at(1)->proxy()->var()->location() == | 5964 CHECK(declarations->at(1)->proxy()->var()->location() == |
5963 i::VariableLocation::MODULE); | 5965 i::VariableLocation::MODULE); |
5964 | 5966 |
5965 CHECK(declarations->at(2)->proxy()->raw_name()->IsOneByteEqualTo("n")); | 5967 CHECK(declarations->at(2)->proxy()->raw_name()->IsOneByteEqualTo("n")); |
5966 CHECK(declarations->at(2)->proxy()->var()->mode() == i::CONST); | 5968 CHECK(declarations->at(2)->proxy()->var()->mode() == i::CONST); |
| 5969 CHECK(declarations->at(2)->proxy()->var()->binding_needs_init()); |
5967 CHECK(declarations->at(2)->proxy()->var()->location() == | 5970 CHECK(declarations->at(2)->proxy()->var()->location() == |
5968 i::VariableLocation::MODULE); | 5971 i::VariableLocation::MODULE); |
5969 | 5972 |
5970 CHECK(declarations->at(3)->proxy()->raw_name()->IsOneByteEqualTo("foo")); | 5973 CHECK(declarations->at(3)->proxy()->raw_name()->IsOneByteEqualTo("foo")); |
5971 CHECK(declarations->at(3)->proxy()->var()->mode() == i::VAR); | 5974 CHECK(declarations->at(3)->proxy()->var()->mode() == i::VAR); |
| 5975 CHECK(!declarations->at(3)->proxy()->var()->binding_needs_init()); |
5972 CHECK(declarations->at(3)->proxy()->var()->location() == | 5976 CHECK(declarations->at(3)->proxy()->var()->location() == |
5973 i::VariableLocation::MODULE); | 5977 i::VariableLocation::MODULE); |
5974 | 5978 |
5975 CHECK(declarations->at(4)->proxy()->raw_name()->IsOneByteEqualTo("goo")); | 5979 CHECK(declarations->at(4)->proxy()->raw_name()->IsOneByteEqualTo("goo")); |
5976 CHECK(declarations->at(4)->proxy()->var()->mode() == i::LET); | 5980 CHECK(declarations->at(4)->proxy()->var()->mode() == i::LET); |
| 5981 CHECK(!declarations->at(4)->proxy()->var()->binding_needs_init()); |
5977 CHECK(declarations->at(4)->proxy()->var()->location() == | 5982 CHECK(declarations->at(4)->proxy()->var()->location() == |
5978 i::VariableLocation::MODULE); | 5983 i::VariableLocation::MODULE); |
5979 | 5984 |
5980 CHECK(declarations->at(5)->proxy()->raw_name()->IsOneByteEqualTo("hoo")); | 5985 CHECK(declarations->at(5)->proxy()->raw_name()->IsOneByteEqualTo("hoo")); |
5981 CHECK(declarations->at(5)->proxy()->var()->mode() == i::LET); | 5986 CHECK(declarations->at(5)->proxy()->var()->mode() == i::LET); |
| 5987 CHECK(declarations->at(5)->proxy()->var()->binding_needs_init()); |
5982 CHECK(declarations->at(5)->proxy()->var()->location() == | 5988 CHECK(declarations->at(5)->proxy()->var()->location() == |
5983 i::VariableLocation::MODULE); | 5989 i::VariableLocation::MODULE); |
5984 | 5990 |
5985 CHECK(declarations->at(6)->proxy()->raw_name()->IsOneByteEqualTo("joo")); | 5991 CHECK(declarations->at(6)->proxy()->raw_name()->IsOneByteEqualTo("joo")); |
5986 CHECK(declarations->at(6)->proxy()->var()->mode() == i::CONST); | 5992 CHECK(declarations->at(6)->proxy()->var()->mode() == i::CONST); |
| 5993 CHECK(declarations->at(6)->proxy()->var()->binding_needs_init()); |
5987 CHECK(declarations->at(6)->proxy()->var()->location() == | 5994 CHECK(declarations->at(6)->proxy()->var()->location() == |
5988 i::VariableLocation::MODULE); | 5995 i::VariableLocation::MODULE); |
5989 | 5996 |
5990 CHECK( | 5997 CHECK( |
5991 declarations->at(7)->proxy()->raw_name()->IsOneByteEqualTo("*default*")); | 5998 declarations->at(7)->proxy()->raw_name()->IsOneByteEqualTo("*default*")); |
5992 CHECK(declarations->at(7)->proxy()->var()->mode() == i::CONST); | 5999 CHECK(declarations->at(7)->proxy()->var()->mode() == i::CONST); |
| 6000 CHECK(declarations->at(7)->proxy()->var()->binding_needs_init()); |
5993 CHECK(declarations->at(7)->proxy()->var()->location() == | 6001 CHECK(declarations->at(7)->proxy()->var()->location() == |
5994 i::VariableLocation::MODULE); | 6002 i::VariableLocation::MODULE); |
5995 | 6003 |
5996 CHECK( | 6004 CHECK( |
5997 declarations->at(8)->proxy()->raw_name()->IsOneByteEqualTo("nonexport")); | 6005 declarations->at(8)->proxy()->raw_name()->IsOneByteEqualTo("nonexport")); |
| 6006 CHECK(declarations->at(8)->proxy()->var()->binding_needs_init()); |
5998 CHECK(declarations->at(8)->proxy()->var()->location() != | 6007 CHECK(declarations->at(8)->proxy()->var()->location() != |
5999 i::VariableLocation::MODULE); | 6008 i::VariableLocation::MODULE); |
6000 | 6009 |
6001 CHECK(declarations->at(9)->proxy()->raw_name()->IsOneByteEqualTo("mm")); | 6010 CHECK(declarations->at(9)->proxy()->raw_name()->IsOneByteEqualTo("mm")); |
6002 CHECK(declarations->at(9)->proxy()->var()->mode() == i::CONST); | 6011 CHECK(declarations->at(9)->proxy()->var()->mode() == i::CONST); |
| 6012 CHECK(declarations->at(9)->proxy()->var()->binding_needs_init()); |
6003 CHECK(declarations->at(9)->proxy()->var()->location() == | 6013 CHECK(declarations->at(9)->proxy()->var()->location() == |
6004 i::VariableLocation::MODULE); | 6014 i::VariableLocation::MODULE); |
6005 | 6015 |
6006 CHECK(declarations->at(10)->proxy()->raw_name()->IsOneByteEqualTo("aa")); | 6016 CHECK(declarations->at(10)->proxy()->raw_name()->IsOneByteEqualTo("aa")); |
6007 CHECK(declarations->at(10)->proxy()->var()->mode() == i::CONST); | 6017 CHECK(declarations->at(10)->proxy()->var()->mode() == i::CONST); |
| 6018 CHECK(declarations->at(10)->proxy()->var()->binding_needs_init()); |
6008 CHECK(declarations->at(10)->proxy()->var()->location() == | 6019 CHECK(declarations->at(10)->proxy()->var()->location() == |
6009 i::VariableLocation::MODULE); | 6020 i::VariableLocation::MODULE); |
6010 | 6021 |
6011 CHECK(declarations->at(11)->proxy()->raw_name()->IsOneByteEqualTo("loo")); | 6022 CHECK(declarations->at(11)->proxy()->raw_name()->IsOneByteEqualTo("loo")); |
6012 CHECK(declarations->at(11)->proxy()->var()->mode() == i::CONST); | 6023 CHECK(declarations->at(11)->proxy()->var()->mode() == i::CONST); |
| 6024 CHECK(!declarations->at(11)->proxy()->var()->binding_needs_init()); |
6013 CHECK(declarations->at(11)->proxy()->var()->location() != | 6025 CHECK(declarations->at(11)->proxy()->var()->location() != |
6014 i::VariableLocation::MODULE); | 6026 i::VariableLocation::MODULE); |
6015 | 6027 |
6016 CHECK(declarations->at(12)->proxy()->raw_name()->IsOneByteEqualTo("foob")); | 6028 CHECK(declarations->at(12)->proxy()->raw_name()->IsOneByteEqualTo("foob")); |
6017 CHECK(declarations->at(12)->proxy()->var()->mode() == i::CONST); | 6029 CHECK(declarations->at(12)->proxy()->var()->mode() == i::CONST); |
| 6030 CHECK(!declarations->at(12)->proxy()->var()->binding_needs_init()); |
6018 CHECK(declarations->at(12)->proxy()->var()->location() == | 6031 CHECK(declarations->at(12)->proxy()->var()->location() == |
6019 i::VariableLocation::MODULE); | 6032 i::VariableLocation::MODULE); |
6020 | 6033 |
6021 CHECK_EQ(13, declarations->length()); | 6034 CHECK_EQ(13, declarations->length()); |
6022 | 6035 |
6023 i::ModuleDescriptor* descriptor = module_scope->module(); | 6036 i::ModuleDescriptor* descriptor = module_scope->module(); |
6024 CHECK_NOT_NULL(descriptor); | 6037 CHECK_NOT_NULL(descriptor); |
6025 // TODO(neis): Test more once we can inspect the imports/exports. | 6038 // TODO(neis): Test more once we can inspect the imports/exports. |
6026 } | 6039 } |
6027 | 6040 |
(...skipping 2024 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8052 "(a,);", | 8065 "(a,);", |
8053 "(a,b,c,);", | 8066 "(a,b,c,);", |
8054 NULL | 8067 NULL |
8055 }; | 8068 }; |
8056 // clang-format on | 8069 // clang-format on |
8057 | 8070 |
8058 static const ParserFlag always_flags[] = {kAllowHarmonyTrailingCommas}; | 8071 static const ParserFlag always_flags[] = {kAllowHarmonyTrailingCommas}; |
8059 RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags, | 8072 RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags, |
8060 arraysize(always_flags)); | 8073 arraysize(always_flags)); |
8061 } | 8074 } |
OLD | NEW |