Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(357)

Unified Diff: test/cctest/test-regexp.cc

Issue 1546493003: Revert of Add web compat workarounds for ES2015 RegExp semantics (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/runtime/runtime-internal.cc ('k') | test/mjsunit/es6/regexp-flags.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/cctest/test-regexp.cc
diff --git a/test/cctest/test-regexp.cc b/test/cctest/test-regexp.cc
index c6158448ae5e0dd8ad427410872c59f289685cce..26b019eeb9e7c6ad4b09f526fed0a0b7c9cf2379 100644
--- a/test/cctest/test-regexp.cc
+++ b/test/cctest/test-regexp.cc
@@ -28,7 +28,6 @@
#include <cstdlib>
#include <sstream>
-#include "include/v8.h"
#include "src/v8.h"
#include "src/ast/ast.h"
@@ -1848,82 +1847,3 @@
TEST(Graph) {
Execute("\\b\\w+\\b", false, true, true);
}
-
-
-namespace {
-
-int* global_use_counts = NULL;
-
-void MockUseCounterCallback(v8::Isolate* isolate,
- v8::Isolate::UseCounterFeature feature) {
- ++global_use_counts[feature];
-}
-}
-
-
-// Test that ES2015 RegExp compatibility fixes are in place, that they
-// are not overly broad, and the appropriate UseCounters are incremented
-TEST(UseCountRegExp) {
- i::FLAG_harmony_regexps = true;
- v8::Isolate* isolate = CcTest::isolate();
- v8::HandleScope scope(isolate);
- LocalContext env;
- int use_counts[v8::Isolate::kUseCounterFeatureCount] = {};
- global_use_counts = use_counts;
- CcTest::isolate()->SetUseCounterCallback(MockUseCounterCallback);
-
- // Compat fix: RegExp.prototype.sticky == undefined; UseCounter tracks it
- v8::Local<v8::Value> resultSticky = CompileRun("RegExp.prototype.sticky");
- CHECK_EQ(1, use_counts[v8::Isolate::kRegExpPrototypeStickyGetter]);
- CHECK_EQ(0, use_counts[v8::Isolate::kRegExpPrototypeToString]);
- CHECK(resultSticky->IsUndefined());
-
- // re.sticky has approriate value and doesn't touch UseCounter
- v8::Local<v8::Value> resultReSticky = CompileRun("/a/.sticky");
- CHECK_EQ(1, use_counts[v8::Isolate::kRegExpPrototypeStickyGetter]);
- CHECK_EQ(0, use_counts[v8::Isolate::kRegExpPrototypeToString]);
- CHECK(resultReSticky->IsFalse());
-
- // When the getter is caleld on another object, throw an exception
- // and don't increment the UseCounter
- v8::Local<v8::Value> resultStickyError = CompileRun(
- "var exception;"
- "try { "
- " Object.getOwnPropertyDescriptor(RegExp.prototype, 'sticky')"
- " .get.call(null);"
- "} catch (e) {"
- " exception = e;"
- "}"
- "exception");
- CHECK_EQ(1, use_counts[v8::Isolate::kRegExpPrototypeStickyGetter]);
- CHECK_EQ(0, use_counts[v8::Isolate::kRegExpPrototypeToString]);
- CHECK(resultStickyError->IsObject());
-
- // RegExp.prototype.toString() returns '/(?:)/' as a compatibility fix;
- // a UseCounter is incremented to track it.
- v8::Local<v8::Value> resultToString =
- CompileRun("RegExp.prototype.toString().length");
- CHECK_EQ(1, use_counts[v8::Isolate::kRegExpPrototypeStickyGetter]);
- CHECK_EQ(1, use_counts[v8::Isolate::kRegExpPrototypeToString]);
- CHECK(resultToString->IsInt32());
- CHECK_EQ(6,
- resultToString->Int32Value(isolate->GetCurrentContext()).FromJust());
-
- // .toString() works on normal RegExps
- v8::Local<v8::Value> resultReToString = CompileRun("/a/.toString().length");
- CHECK_EQ(1, use_counts[v8::Isolate::kRegExpPrototypeStickyGetter]);
- CHECK_EQ(1, use_counts[v8::Isolate::kRegExpPrototypeToString]);
- CHECK(resultReToString->IsInt32());
- CHECK_EQ(
- 3, resultReToString->Int32Value(isolate->GetCurrentContext()).FromJust());
-
- // .toString() throws on non-RegExps that aren't RegExp.prototype
- v8::Local<v8::Value> resultToStringError = CompileRun(
- "var exception;"
- "try { RegExp.prototype.toString.call(null) }"
- "catch (e) { exception = e; }"
- "exception");
- CHECK_EQ(1, use_counts[v8::Isolate::kRegExpPrototypeStickyGetter]);
- CHECK_EQ(1, use_counts[v8::Isolate::kRegExpPrototypeToString]);
- CHECK(resultToStringError->IsObject());
-}
« no previous file with comments | « src/runtime/runtime-internal.cc ('k') | test/mjsunit/es6/regexp-flags.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698