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 {
|
enum PropertyAttribute {
|
||||||
None = 0,
|
None = 0,
|
||||||
ReadOnly = 1 << 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
|
* A JavaScript value that wraps a C++ void*. This type of value is
|
||||||
* mainly used to associate C++ data structures with JavaScript
|
* 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
|
// Redistribution and use in source and binary forms, with or without
|
||||||
// modification, are permitted provided that the following conditions are
|
// modification, are permitted provided that the following conditions are
|
||||||
// met:
|
// met:
|
||||||
|
@ -1050,10 +1050,8 @@ THREADED_TEST(Date) {
|
|||||||
v8::HandleScope scope;
|
v8::HandleScope scope;
|
||||||
LocalContext env;
|
LocalContext env;
|
||||||
double PI = 3.1415926;
|
double PI = 3.1415926;
|
||||||
Local<Value> date = v8::Date::New(PI);
|
Local<Value> date_obj = v8::Date::New(PI);
|
||||||
CHECK_EQ(3.0, date->NumberValue());
|
CHECK_EQ(3.0, date_obj->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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -13803,11 +13801,6 @@ TEST(RegExp) {
|
|||||||
context->Global()->Set(v8_str("re"), re);
|
context->Global()->Set(v8_str("re"), re);
|
||||||
ExpectTrue("re.test('FoobarbaZ')");
|
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;
|
v8::TryCatch try_catch;
|
||||||
re = v8::RegExp::New(v8_str("foo["), v8::RegExp::kNone);
|
re = v8::RegExp::New(v8_str("foo["), v8::RegExp::kNone);
|
||||||
CHECK(re.IsEmpty());
|
CHECK(re.IsEmpty());
|
||||||
|
Loading…
Reference in New Issue
Block a user