Exception: Exception
  
  
  
  
  
  
  
  
  
  
  
  
    - Defined in:
- opal/opal/corelib/error.rb
 
  
    
      Class Method Summary
      collapse
    
    
  
    
      Instance Method Summary
      collapse
    
    
  
  Constructor Details
  
    
  
  
    #initialize(*args)  ⇒ Exception 
  
  
  
  
    Returns a new instance of Exception
   
 
  
  
    | 
28
29
30
31 | # File 'opal/opal/corelib/error.rb', line 28
def initialize(*args)
    `self.message = (args.length > 0) ? args[0] : nil`
end | 
 
  
 
  
    Class Method Details
    
      
  
  
    .exception(*args)  ⇒ Object 
  
  
  
  
    | 
24
25
26 | # File 'opal/opal/corelib/error.rb', line 24
def self.exception(*args)
  new(*args)
end | 
 
    
      
  
  
    .new(*args)  ⇒ Object 
  
  
  
  
    | 
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | # File 'opal/opal/corelib/error.rb', line 3
def self.new(*args)
  %x{
    var message   = (args.length > 0) ? args[0] : nil;
    var error     = new self.$$alloc(message);
    error.name    = self.$$name;
    error.message = message;
    Opal.send(error, error.$initialize, args);
    // Error.captureStackTrace() will use .name and .toString to build the
    // first line of the stack trace so it must be called after the error
    // has been initialized.
    // https://nodejs.org/dist/latest-v6.x/docs/api/errors.html
    if (Opal.config.enable_stack_trace && Error.captureStackTrace) {
      // Passing Kernel.raise will cut the stack trace from that point above
      Error.captureStackTrace(error, Kernel$raise);
    }
    return error;
  }
end | 
 
    
   
  
    Instance Method Details
    
      
  
  
    #backtrace  ⇒ Object 
  
  
  
  
    | 
33
34
35
36
37
38
39
40
41
42
43
44
45
46 | # File 'opal/opal/corelib/error.rb', line 33
def backtrace
  %x{
    var backtrace = self.stack;
    if (typeof(backtrace) === 'string') {
      return backtrace.split("\n").slice(0, 15);
    }
    else if (backtrace) {
      return backtrace.slice(0, 15);
    }
    return [];
  }
end | 
 
    
      
  
  
    #exception(str = nil)  ⇒ Object 
  
  
  
  
    | 
48
49
50
51
52
53
54
55
56
57
58 | # File 'opal/opal/corelib/error.rb', line 48
def exception(str=nil)
  %x{
    if (str === nil || self === str) {
      return self;
    }
    var cloned = #{self.clone};
    cloned.message = str;
    return cloned;
  }
end | 
 
    
      
  
  
    | 
65
66
67
68 | # File 'opal/opal/corelib/error.rb', line 65
def inspect
  as_str = to_s
  as_str.empty? ? self.class.to_s : "#<#{self.class.to_s}: #{to_s}>"
end | 
 
    
      
  
  
    not using alias message to_s because you need to be able to override to_s and have message use overridden method, won't work with alias
   
 
  
  
    | 
61
62
63 | # File 'opal/opal/corelib/error.rb', line 61
def message
  to_s
end | 
 
    
      
  
  
    | 
70
71
72
73 | # File 'opal/opal/corelib/error.rb', line 70
def to_s
    (@message && @message.to_s) || self.class.to_s
end |