Revert "Make Date and RegExp inherit from Object in the API."
Tests are failing in debug mode. R=sgjesse@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/6930004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
b8cdecb517
commit
26c775da94
162
include/v8.h
162
include/v8.h
@ -1349,6 +1349,87 @@ class Uint32 : public Integer {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* An instance of the built-in Date constructor (ECMA-262, 15.9).
|
||||
*/
|
||||
class Date : public Value {
|
||||
public:
|
||||
V8EXPORT static Local<Value> New(double time);
|
||||
|
||||
/**
|
||||
* A specialization of Value::NumberValue that is more efficient
|
||||
* because we know the structure of this object.
|
||||
*/
|
||||
V8EXPORT double NumberValue() const;
|
||||
|
||||
static inline Date* Cast(v8::Value* obj);
|
||||
|
||||
/**
|
||||
* Notification that the embedder has changed the time zone,
|
||||
* daylight savings time, or other date / time configuration
|
||||
* parameters. V8 keeps a cache of various values used for
|
||||
* date / time computation. This notification will reset
|
||||
* those cached values for the current context so that date /
|
||||
* time configuration changes would be reflected in the Date
|
||||
* object.
|
||||
*
|
||||
* This API should not be called more than needed as it will
|
||||
* negatively impact the performance of date operations.
|
||||
*/
|
||||
V8EXPORT static void DateTimeConfigurationChangeNotification();
|
||||
|
||||
private:
|
||||
V8EXPORT static void CheckCast(v8::Value* obj);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* An instance of the built-in RegExp constructor (ECMA-262, 15.10).
|
||||
*/
|
||||
class RegExp : public Value {
|
||||
public:
|
||||
/**
|
||||
* Regular expression flag bits. They can be or'ed to enable a set
|
||||
* of flags.
|
||||
*/
|
||||
enum Flags {
|
||||
kNone = 0,
|
||||
kGlobal = 1,
|
||||
kIgnoreCase = 2,
|
||||
kMultiline = 4
|
||||
};
|
||||
|
||||
/**
|
||||
* Creates a regular expression from the given pattern string and
|
||||
* the flags bit field. May throw a JavaScript exception as
|
||||
* described in ECMA-262, 15.10.4.1.
|
||||
*
|
||||
* For example,
|
||||
* RegExp::New(v8::String::New("foo"),
|
||||
* static_cast<RegExp::Flags>(kGlobal | kMultiline))
|
||||
* is equivalent to evaluating "/foo/gm".
|
||||
*/
|
||||
V8EXPORT static Local<RegExp> New(Handle<String> pattern,
|
||||
Flags flags);
|
||||
|
||||
/**
|
||||
* Returns the value of the source property: a string representing
|
||||
* the regular expression.
|
||||
*/
|
||||
V8EXPORT Local<String> GetSource() const;
|
||||
|
||||
/**
|
||||
* Returns the flags bit field.
|
||||
*/
|
||||
V8EXPORT Flags GetFlags() const;
|
||||
|
||||
static inline RegExp* Cast(v8::Value* obj);
|
||||
|
||||
private:
|
||||
V8EXPORT static void CheckCast(v8::Value* obj);
|
||||
};
|
||||
|
||||
|
||||
enum PropertyAttribute {
|
||||
None = 0,
|
||||
ReadOnly = 1 << 0,
|
||||
@ -1683,87 +1764,6 @@ class Function : public Object {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* An instance of the built-in Date constructor (ECMA-262, 15.9).
|
||||
*/
|
||||
class Date : public Object {
|
||||
public:
|
||||
V8EXPORT static Local<Value> New(double time);
|
||||
|
||||
/**
|
||||
* A specialization of Value::NumberValue that is more efficient
|
||||
* because we know the structure of this object.
|
||||
*/
|
||||
V8EXPORT double NumberValue() const;
|
||||
|
||||
static inline Date* Cast(v8::Value* obj);
|
||||
|
||||
/**
|
||||
* Notification that the embedder has changed the time zone,
|
||||
* daylight savings time, or other date / time configuration
|
||||
* parameters. V8 keeps a cache of various values used for
|
||||
* date / time computation. This notification will reset
|
||||
* those cached values for the current context so that date /
|
||||
* time configuration changes would be reflected in the Date
|
||||
* object.
|
||||
*
|
||||
* This API should not be called more than needed as it will
|
||||
* negatively impact the performance of date operations.
|
||||
*/
|
||||
V8EXPORT static void DateTimeConfigurationChangeNotification();
|
||||
|
||||
private:
|
||||
V8EXPORT static void CheckCast(v8::Value* obj);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* An instance of the built-in RegExp constructor (ECMA-262, 15.10).
|
||||
*/
|
||||
class RegExp : public Object {
|
||||
public:
|
||||
/**
|
||||
* Regular expression flag bits. They can be or'ed to enable a set
|
||||
* of flags.
|
||||
*/
|
||||
enum Flags {
|
||||
kNone = 0,
|
||||
kGlobal = 1,
|
||||
kIgnoreCase = 2,
|
||||
kMultiline = 4
|
||||
};
|
||||
|
||||
/**
|
||||
* Creates a regular expression from the given pattern string and
|
||||
* the flags bit field. May throw a JavaScript exception as
|
||||
* described in ECMA-262, 15.10.4.1.
|
||||
*
|
||||
* For example,
|
||||
* RegExp::New(v8::String::New("foo"),
|
||||
* static_cast<RegExp::Flags>(kGlobal | kMultiline))
|
||||
* is equivalent to evaluating "/foo/gm".
|
||||
*/
|
||||
V8EXPORT static Local<RegExp> New(Handle<String> pattern,
|
||||
Flags flags);
|
||||
|
||||
/**
|
||||
* Returns the value of the source property: a string representing
|
||||
* the regular expression.
|
||||
*/
|
||||
V8EXPORT Local<String> GetSource() const;
|
||||
|
||||
/**
|
||||
* Returns the flags bit field.
|
||||
*/
|
||||
V8EXPORT Flags GetFlags() const;
|
||||
|
||||
static inline RegExp* Cast(v8::Value* obj);
|
||||
|
||||
private:
|
||||
V8EXPORT static void CheckCast(v8::Value* obj);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* A JavaScript value that wraps a C++ void*. This type of value is
|
||||
* mainly used to associate C++ data structures with JavaScript
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2011 the V8 project authors. All rights reserved.
|
||||
// Copyright 2008 the V8 project authors. All rights reserved.
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
|
@ -1050,10 +1050,8 @@ THREADED_TEST(Date) {
|
||||
v8::HandleScope scope;
|
||||
LocalContext env;
|
||||
double PI = 3.1415926;
|
||||
Local<Value> date = v8::Date::New(PI);
|
||||
CHECK_EQ(3.0, date->NumberValue());
|
||||
date.As<v8::Date>()->Set(v8_str("property"), v8::Integer::New(42));
|
||||
CHECK_EQ(42, date.As<v8::Date>()->Get(v8_str("property"))->Int32Value());
|
||||
Local<Value> date_obj = v8::Date::New(PI);
|
||||
CHECK_EQ(3.0, date_obj->NumberValue());
|
||||
}
|
||||
|
||||
|
||||
@ -13803,11 +13801,6 @@ TEST(RegExp) {
|
||||
context->Global()->Set(v8_str("re"), re);
|
||||
ExpectTrue("re.test('FoobarbaZ')");
|
||||
|
||||
// RegExps are objects on which you can set properties.
|
||||
re->Set(v8_str("property"), v8::Integer::New(32));
|
||||
v8::Handle<v8::Value> value = CompileRun("re.property");
|
||||
ASSERT_EQ(32, value->Int32Value());
|
||||
|
||||
v8::TryCatch try_catch;
|
||||
re = v8::RegExp::New(v8_str("foo["), v8::RegExp::kNone);
|
||||
CHECK(re.IsEmpty());
|
||||
|
Loading…
Reference in New Issue
Block a user